android - DataSnapshot 值是否有可能为空?

标签 android firebase firebase-realtime-database

我正在接听this question然后我想到了这个新问题。

在那个问题中,我这样描述我的示例代码:

boolean firstCallDone = false;
boolean secondCallDone = false;

DataSnapshot firstDataSnapshot = null;
DataSnapshot secondDataSnapshot = null;

onCreate() {
    firstRef.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            firstCallDone = true;
            firstDataSnapshot = dataSnapshot;

            if (firsCallDone && secondCallDone)
                doSomething();
        }
        ...
    }
    secondRef.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            secondCallDone = true;
            secondDataSnapshot = dataSnapshot;

            if (firsCallDone && secondCallDone)
                doSomething();
        }
        ...
    }
}

doSomething() {
    // do something with firstDataSnapshot and secondDataSnapshot
    ...
}

以上代码的目的是在调用两个 Firebase 数据库并获取其值后执行 doSometing()

然后我意识到,我可以像这样验证 if (firstDataSnapshot != null && secondDataSnapshot != null) 而不是像这样验证 if (firsCallDone && secondCallDone) >。这是因为据我所知,DataSnapshot 从不 为 null(在其值已填充到 onDataChange() 中)。

但我不确定。在 onDataChange() 中 DataSnapshot 是否有可能为空?如果有,是什么原因导致的?

最佳答案

DataSnapshot 永远不能为空,无论那里是否有数据(因为如果没有数据,您将得到一个空但非空的 DataSnapshot)。

关于android - DataSnapshot 值是否有可能为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41512738/

相关文章:

android lint - 使用 apache odata-client-android 时出现 InvalidPackage 错误

Android Volley 库 : do we always have to repeat Response. Listener 和 Response.ErrorListener

angular - 类型 '{ query: {}; }' 的参数不可分配给类型 'QueryFn' 的参数

javascript - Firebase 的云函数 : How to access an array I have just got from firebase?

javascript - 关于在 firebase 云函数中 promise 的 then 回调中返回空值的问题

java - ViewPager如何中断滚动

android - 如何创建具有 4 列的 TableLayout?

android - 无法将 SHA1 指纹添加到 Firebase 控制台

javascript - 如何从不带引号的变量中推送 Firebase 中的数字?

android - 我如何从 firebase 获取多个 key