【发布时间】:2017-05-14 02:06:11
【问题描述】:
我有这个标准的 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
}
}
}
问题是引用 "user/toys/-K2873267832" 不存在。当我在 console.firebase.google.com 上删除密钥时,dataSnapshot 不应该有数据权。连键 user/toys 都被删除了。
我在这个项目上工作了一个月,在一个复杂的数据库中有很多 ValueEventListener。这是我以前从未见过的。
什么会导致这种情况发生?
【问题讨论】:
-
所以dataSnapshot不等于null?
-
没错,DataSnapshot { key =-K2873267832, value = null }
-
查看发布的答案;您会获得该位置的值,但这是意料之中的。还预计它不会有任何价值。如果您尝试检查某个位置是否存在,这就是您的做法 - 使用值事件侦听器,然后查看数据是否为空。您也可以在父节点上进行调用,并使用
hasChild方法查看它是否存在,如here 所述。
标签: android firebase firebase-realtime-database