1
logged events如果在應用程序運行時沒有互聯網連接並且之後從未打開應用程序,會發生什麼情況?當應用程序關閉時,Firebase是否會同步記錄的事件?
當互聯網連接出現時,Firebase是否使用某種JobScheduler(以及其他iOS版本)來同步記錄的事件?
logged events如果在應用程序運行時沒有互聯網連接並且之後從未打開應用程序,會發生什麼情況?當應用程序關閉時,Firebase是否會同步記錄的事件?
當互聯網連接出現時,Firebase是否使用某種JobScheduler(以及其他iOS版本)來同步記錄的事件?
在對問題的評論中,@SergGr和@Frank表示在iOS上,事件從未上傳。
在Android上,我的觀察是,事件記錄到處理緩衝和上傳的共享系統服務(不是應用程序的一部分)。因此,當沒有互聯網連接時記錄的事件稍後由服務上傳,無論原始應用程序是否仍在運行。
此行爲可以通過enabling analytics logging和查看adb
窗口中的日誌輸出來觀察。系統服務的標籤是FA-SVC。
下面列出了摘錄日誌輸出的一些示例。我執行這些步驟爲我的測試:
// uploading seems occur about every hour
03-02 07:40:42.397 V/FA-SVC (1889): Upload scheduled in approximately ms: 3599957
// the service detects connectivity changes
03-02 06:47:16.496 V/FA-SVC (1889): NetworkBroadcastReceiver received action: android.net.conn.CONNECTIVITY_CHANGE
// this log marks the start of upload; followed by logs for each uploaded event
03-02 07:40:41.757 V/FA-SVC (1889): Uploading data. app, uncompressed size, data: com.qbix.xxxx, 3450
不知道關於Android的實現,但在iOS應用程序通常不能做後臺任務很長一段時間被關閉後,所以我預計,如果應用程序是永遠不會再次打開 - iOS設備事件永遠丟失 – SergGr
@SergGr的確是iOS上Firebase Analytics的行爲。你能把它作爲答案發布嗎? –
@FrankvanPuffelen,我寧願等待一個知道它如何在Android上工作的人,因爲我沒有,也不能從iOS的一般知識中扣除。我認爲,鑑於單個接受答案的SO限制,最好是對兩個平臺都有單一響應 – SergGr