簡體   English   中英

重新連接注銷后,Firebase是否會同步脫機數據?

[英]Will Firebase sync offline data after logout on reconnection?

我有一個脫機數據丟失的情況,但似乎它應該已同步到服務器。

場景:

用戶已登錄到我們的Firebase應用程序。 如Firebase建議的那樣,持久性已打開:

Database.database().isPersistenceEnabled = true

如果用戶殺死該應用程序並在脫機時重新啟動它,則他/她可以繼續使用該應用程序來離線創建和查詢數據。 用戶重新建立網絡連接后,數據將同步。 我們很好。

但是,如果用戶在脫機時退出應用程序,則他/她將需要重新獲得網絡連接才能登錄。屆時,該應用程序將獲得一個新的身份驗證令牌。 但是,脫機時先前與第一個登錄會話/令牌保存的數據尚未同步。 數據丟失了嗎? 還是有辦法告訴Firebase使用先前或新令牌同步該脫機數據?

同步時間表

TL;博士:

如何獲得注銷前離線創建的Firebase數據,一旦建立連接就進行同步?

注意:我沒有使用交易。 我知道在重新啟動應用程序時交易丟失。

在Firebase獲得支持后,這就是我學到的。 如果您具有要求對用戶進行身份驗證的安全規則,則以下內容適用。

脫機收集的數據需要身份驗證令牌,以便在獲得連接后將數據復制回服務器。 firebase.auth()。signOut()命令會破壞令牌,因此用戶數據將丟失。

為了避免丟失數據,您必須阻止您的應用程序注銷,或者自己存儲脫機數據,並提供一種方法來使該數據在新的身份驗證令牌上重新提交/同步到Firebase。

這是Firebase有望改善的領域。 我的想法是Firebase應該根據用戶仍登錄時使用的令牌來同步數據。由於用戶已注銷,因此即使用戶處於脫機狀態,他/她也已在數據收集時登錄。 有人告訴我這將是一項功能請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM