我有这个标准的Firebase电话:
ref.child("user/toys/-K2873267832")
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot ) {
if (dataSnapshot != null) {
// wow the Data at Firebase database does not exist
}
}
}
问题是ref "user/toys/-K2873267832"
不存在。当我在console.firebase.google.com上删除密钥时,dataSnapshot
不应该有正确的数据。即使密钥user/toys
也会被删除。
我一直在为这个项目工作一个月,并且在一个复杂的数据库中有很多ValueEventListener
。这是我以前从未见过的。
是什么导致这种情况发生?
答案 0 :(得分:2)
根据this post:
如果没有值,将使用空值调用ValueEventListener 存在于某个位置。所以,如果你也打电话 addListenerForSingleValueEvent(),您可以检测到该位置 没有价值。
然后他说dataSnapshot.getValue()
应该等于null
。因此,虽然将返回有效的dataSnapshot,但该快照的值将为null。