0
我想在我的FirebaseDatabase
和我正在開發的Android應用程序中構建一個存在系統。目前,我正試圖在我的數據庫上實現onDisconenct()
方法。Firebase onDisconnect()。removeValue()總是在客戶端連接時刪除值
private FirebaseAuth auth;
private FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference dbRef = database.getReference();
protected void onCreate(Bundle savedInstanceState){
dbRef.child("users").child("customers").child(auth.getCurrentUser().getUid()).onDisconnect().removeValue(new DatabaseReference.CompletionListener() {
@Override
public void onComplete(DatabaseError error, DatabaseReference firebase) {
if (error != null) {
System.out.println("could not establish onDisconnect event:" + error.getMessage());
}
}
});
}
的火力JSON樹的結構爲這樣
APP>
USERS>
CUSTOMERS>
UID-
我現在最大的問題是創建Activity
時onDisconnect().removeValue()
始終執行(即數據被創建,然後立即刪除) 。發生這種情況時,應用程序仍然連接到數據庫並進行身份驗證。
編輯:
在執行這行代碼
DatabaseReference connectedRef = FirebaseDatabase.getInstance().getReference(".info/connected");
connectedRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
boolean connected = snapshot.getValue(Boolean.class);
if (connected) {
System.out.println("connected");
} else {
System.out.println("not connected");
dbRef.child("users").child("customers").child(auth.getCurrentUser().getUid()).removeValue();
}
}
這似乎是應用在不斷的連接,並從數據庫斷開連接...
如果沒有掛起的寫入和沒有註冊的偵聽器,大約一分鐘後連接會自動關閉。 –
yeap猜你也是對的,謝謝! – user6058982