我是Firebase的新手,非常感謝您對此有所瞭解。當我以這種方式調用Firebase setValue(obj,callback)函數時,它可以很好地工作。但是,當我嘗試刪除「ref」引用的值時,沒有任何反應。這只是一個測試帳戶,所以我的安全規則設置爲完全讀取和寫入。輸出如下。一些輸出來自調用removeNode(...)的封裝run()方法。任何見解都非常感謝。Firebase Java API removeValue無法正常工作
public void removeNode(final Firebase ref) throws Exception {
try {
System.out.println("Start Remove Node: " + ref.toString());
final AtomicBoolean done = new AtomicBoolean(false);
ref.removeValue(new Firebase.CompletionListener() {
@Override
public void onComplete(FirebaseError firebaseError, Firebase firebase) {
done.set(true);
System.out.println("Remove Node complete");
if (firebaseError != null) {
System.out.println("ErrorCode: " + firebaseError.getCode());
System.out.println("ErrorMsg: " + firebaseError.getMessage());
}
System.out.println("Remove Complete Done");
}
});
while (!done.get()) {
Thread.sleep(500);
System.out.println("Remove Node Sleeping");
}
} catch (Exception e) {
System.out.println("Remove Node Exception: " + e.getMessage());
}
}
我的輸出如下:
in run() - about to removeNode https://<instance>.firebaseio.com/node/node
Start Remove Node: https://<instance>.firebaseio.com/node/node
Remove Node Sleeping
Remove Node Sleeping
Remove Node complete
Remove Complete Done
Remove Node Sleeping
in run() - RemoveNode leaving normally
pool-3-thread-1
All threads handled so far? {true}
Complete
Process finished with exit code 0
注:我有這種類似的結果。
ref.setValue(null, new Firebase.CompletionListener() {
@Override
public void onComplete(FirebaseError firebaseError, Firebase firebase) {
done.set(true);
System.out.println("setNull Node complete");
if (firebaseError != null) {
System.out.println("ErrorCode: " + firebaseError.getCode());
System.out.println("ErrorMsg: " + firebaseError.getMessage());
} else {
System.out.println("FirebaseError: NULL");
}
System.out.println("setNull Complete Done");
}
});
交叉帖子:https://groups.google.com/forum/#!topic/firebase-talk/RItU7nD-PjM –