[英]Can an offline user carry out database transactions specific to their uid in Firebase Realtime Database?
情況:
用戶在沒有互聯網連接的情況下啟動應用程序。 我嘗試在啟動活動中匿名認證它們,並在具有以下規則結構的數據庫中執行對引用'/ users / $ uid'的數據庫寫操作:
{
"rules": {
"users": {
"$user_id": {
".write": "$user_id === auth.uid",
".read": "$user_id === auth.uid"
}
}
}
}
因此,如果發生這種情況,並且用戶隨后聯機,則實際上將執行排隊的數據庫事務-還是我需要手動重新進行身份驗證並重試數據庫事務?
我不確定如果用戶處於脫機狀態是否會生成用於匿名身份驗證的uid ,所以我認為數據庫引用無法解析。
參考鏈接:
https://firebase.google.com/docs/auth/android/anonymous-auth https://firebase.google.com/docs/database/android/offline-capabilities
我會將數據保存在sharedpreferences或本地DB中(取決於要保存的數據類型)。
之后,要么啟動后台服務並嘗試每10分鍾連接到您的實時數據庫,要么您希望用戶下次打開該應用程序並檢查是否需要檢查身份驗證。
對於后台服務,我建議使用AlarmManger。
因此,在測試之后,我發現:
為了解決這個問題,我正在通過SharedPreferences使用本地存儲來獲取最基本的數據,並在實例化引用用戶uid的DatabaseReference之前等待連接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.