[英]Firebase Realtime Database doesn't update values
我一直在使用firebase數據庫編寫應用程序,在過去的兩天里,它不起作用。 我的意思是,我要與數據庫的連接,但是當我試圖通過設置讀取信息addListenerForSingleValueEvent
它不運行ValueEventListener
即使我updateChildren
。
DatabaseReference mBlaze = FirebaseUtil.getDatabase(PLACES);
mBlaze.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapShot : dataSnapshot.getChildren()) {
System.out.println("Hello");
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
System.out.println("Error");
}
});
long sTime = System.currentTimeMillis();
while (!triggers[0])
if (System.currentTimeMillis() - sTime > 5000)
我在數據庫中有一個觸發器值,用於運行addListenerForSingleValueEvent
。
如果我嘗試在我的設備\\模擬器上運行它,它將不會打印出消息“Hello”,也不會打印出消息“Error”。
這是一個問題的原因是我試圖驗證firebase數據庫的代碼。 我給它一個5秒的時間窗口來改變值,這意味着找到了代碼,如果在5秒后triggers[0]
的值沒有改變,則意味着代碼無效。
在我嘗試減少代碼的setLogLevel
中,我Level.DEBUG
發現了setLogLevel
,在我將它與Level.DEBUG
一起使用Level.DEBUG
,我發現這一行一遍又一遍地出現:
獲取令牌時出錯:用戶的憑據不再有效。 用戶必須再次登錄。
正如我后面所說,當我試圖減少代碼時,我找到了setLogLevel
方法,它與Level.DEBUG
一起Level.DEBUG
,然后我用它來發現錯誤:
獲取令牌時出錯:用戶的憑據不再有效。 用戶必須再次登錄。
經過一些窺探,我發現,由於Firebase-Auth機制,它為用戶授予了24小時的令牌,然后取消授權,導致無法到達服務器。
所以解決方案是實現perma-login [永久登錄]功能,或者每次用戶銷毀應用程序或從頭開始,檢查是否有用戶使用FirebaseAuth
的getCurrentUser()
方法登錄,並且如果有,請退出。
TL; DR:
確保您沒有用戶登錄超過24小時,如果您已登錄,請斷開連接,然后重新連接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.