Force Firebase to send analytics data upon backgrounding? - ios

I'm trying to figure out where users of my app lose interest during the onboarding process. To that end, I've implemented Firebase Analytics. However, it seems that in the scenario where the user only uses the app once never to open it again, the collated analytics data are never uploaded to Firebase. Only when the app is launched a second time, the data are being uploaded.
Does Firebase Analytics have a means of forcing the uploaded upon app backgrounding?

There is no way to force the Firebase Analytics client to send its data to the server at any specific time.
But as Todd says in his blog post How Long Does it Take for My Firebase Analytics Data to Show Up?:
On iOS devices, Firebase will also send down data when your app moves into the background. So if a user tries your app for 20 minutes and then uninstalls it, that session data will still be received, because your app will have sent down the data the moment the user moved your app to the background.
The only caveat to this:
The one corner case where analytics data would actually get lost on iOS would be if your app crashed and then your user immediately uninstalled it.
So it looks like the analytics data should be sent to the server if the user background the app. If that doesn't happen for you, can you describe the flow of your users whose data is not showing up more explicitly?

Related

In iOS Tracking, does Firebase receive data about a first_open event if an iPhone users chose "Do Not Track"?

Non-technical here, just learning Google Analytics and recently dwelling with app analytics for a client, where their developers didn't seem very skilled in Firebase and can't help me understand this issue - can you help?
I'm trying to understand how many raw downloads in Play Console and App Store Connect are actually users that launch the app, by looking at the first_open event. However, I'm aware that iOS users get a pop-up asking if they allow tracking (or maybe another pop-up similar?).
---> Question: If they do not allow tracking on this pop-up, would our Firebase still get data about these users launching the app? What about other events that were set-up with Firebase, such as initiating a booking?
PS: Also, now that you're here: App Store Connect is displaying 23 Total downloads (counting re-installs) for a given month in Country A, but Firebase is displaying 49 first_open events for the same country in the exact same month! How's this even possible, if a first_open only fires at least once per install, or doesn't even fire if the user never opens?

Find when Firebase data has been uploaded after coming back online

I am writing an Android/Cordova/Firebase app which needs to work offline. I have data objects which are updated; I simply update them and use Firebase Database's offline features so that they are uploaded when the app comes back online. That works fine. The problem is that the items also involve blobs which I need to upload to Firebase Storage. I want to somehow be alerted when a pending update is sent to the server, so that I can initiate the upload to Firebase Storage.
Of course I can manage the online/offline status myself with a queue of pending Firebase Storage uploads, but is there any way to have Firebase tell me when a pending update to the database has been made?
There is nothing built into the Firebase SDK to signal when it is completely in sync with the server. In the past I've recommended writing a dummy value from the client when it's back online and having a listener that wait for that dummy value to show up. Once you get that dummy value, you're guaranteed to have also received updates that were written before it.

Can Firebase Data Messages be disabled by iPhone users?

Do Firebase Cloud Messaging Data Messages need to be allowed by an iPhone user and can he disable them in the iPhone's Settings app?
I know that this is required for "Notification Messages". But Firebase "Data Messages" seem different. I do not want to show any visible notification to the user. I just want to ping the iPhone app if and when data in the backend were updated to let the app know that it needs to refresh its data from the server. This is meant to happen in the background without the user noticing.
The aim is to avoid having the app frequently "pull" and ask the backend whether a data refresh is needed. But if "Data Messages" can be disabled by the user, I will not use them as a vehicle to keep critical app data in sync.
Thanks!

iPhone app crashes when it automatically tries to login to a deleted account

I built an app using Firebase, and I have persistenceEnabled turned on for caching data and auth sessions, etc.
I have a user who, every time he opens the app, it tries to login and load using the saved auth session, but his account was deleted, so it crashes.
He tried deleting the app, turning off the phone, even doing a hard reset by holding down the power and home button at the same time. But every time he opens the app, it still crashes on trying to load the persisted session data.
Is there any way to clear this data out short of restoring the phone back to its factory default settings or releasing a new version of the app?
Unfortunately, Firebase stores account credentials in the keychain and there appears to be no way for the end user to remove them (see this other question).
(If you're looking for a way to programmatically remove them, you should be able to call [ref unauth] or similar and Firebase will clear them.)

Is it necessary to give Opt-In/Opt-Out UIAlertView for using Google Analytics in ios?

I am using Google Analytics in my ios App so is it necessary to show this(see Image) kind of Alert box to user so that he can opt out for sending data to analytics.
As we are sending data to 3rd party( Google), I just want to make sure we are not violating any Apple policies.
Thanks
In sample purpose the google analytics show this message. In real time no need of this, in every 30 minutes the session automatically cleared. If you want to close the session in manually use optout for stop the tracking else part no need of this.
If you are use the analytics and submit the app in appstore , the apple does not reject your app. I used google anaytics in my apps. The app also availabe in app store

Resources