Firebase Java API removeValue 不工作
Firebase Java API removeValue not working
我是 Firebase 的新手,所以非常感谢对此的任何见解。当我以这种方式调用 Firebase setValue(obj, callback) 函数时,它工作得很好。但是,当我尝试删除 "ref" 引用的值时,没有任何反应。这只是一个测试帐户,所以我将我的安全规则设置为完全读写。输出如下。一些输出来自调用 removeNode(...) 的封装 运行() 方法。非常感谢任何见解。
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");
}
});
您用于删除的 Firebase URL 是 https://BLAH/node/node
应该是https://BLAH/node吗?
获取 URL 并将其粘贴到您的浏览器中以在 Forge 中查看它并仔细检查数据是否存在。
我是 Firebase 的新手,所以非常感谢对此的任何见解。当我以这种方式调用 Firebase setValue(obj, callback) 函数时,它工作得很好。但是,当我尝试删除 "ref" 引用的值时,没有任何反应。这只是一个测试帐户,所以我将我的安全规则设置为完全读写。输出如下。一些输出来自调用 removeNode(...) 的封装 运行() 方法。非常感谢任何见解。
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");
}
});
您用于删除的 Firebase URL 是 https://BLAH/node/node
应该是https://BLAH/node吗?
获取 URL 并将其粘贴到您的浏览器中以在 Forge 中查看它并仔细检查数据是否存在。