them isolated from your app as much as possible. And they can be easily removed for unit testing. PERSISTENCE FIREBASE The avoidance of hard coded dependencies
them isolated from your app as much as possible. And they can be easily removed for unit testing. PERSISTENCE NETWORKING ALAMOFIRE FIREBASE The avoidance of hard coded dependencies
them isolated from your app as much as possible. And they can be easily removed for unit testing. PERSISTENCE NETWORKING ALAMOFIRE ANALYTICS FIREBASE The avoidance of hard coded dependencies
them isolated from your app as much as possible. And they can be easily removed for unit testing. PERSISTENCE NETWORKING ALAMOFIRE ANALYTICS FIREBASE The avoidance of hard coded dependencies
them isolated from your app as much as possible. And they can be easily removed for unit testing. PERSISTENCE NETWORKING STUB ANALYTICS FIREBASE The avoidance of hard coded dependencies
them isolated from your app as much as possible. And they can be easily removed for unit testing. PERSISTENCE NETWORKING STUB ANALYTICS STUB STUB The avoidance of hard coded dependencies
▸ Can be configured for multiple authentication providers ▸ Customisable via UIAppearance and other tricks, but not directly ▸ Text, colours and icons are pre- set LOGIN
but they are automatically refreshed ▸ The logged in user is `FIRAuth.auth()?.currentUser` ▸ But don’t trust it, it’s cached. ▸ Better to observe authentication state LOGIN
immediately. And then after every state change, including token refresh ▸ So mostly can be ignored. ▸ But it will notify you of any enforced logouts. LOGIN
write & remove data to/from the node ▸ Provides a lot of APIs with completion handlers in the case of errors ▸ Can specify priority for nodes to provide custom ordering of children DATABASE REFERENCE
data by async observations ▸ Large number of observing options, 8 different APIs ▸ Observe once, or on modification, on new children, on removal, on move or on any change DATABASE REFERENCE
data by async observations ▸ Large number of observing options, 8 different APIs ▸ Observe once, or on modification, on new children, on removal, on move or on any change. ▸ Limit returns to get progressive downloads DATABASE REFERENCE