我想在FirebaseRef snapshot.Value == null时执行x。每次都能在Unity编辑器中运行,但是当我在Android设备上执行此操作时,每次都会失败。该应用程序不会崩溃,它什么也不做。
auth工作正常。 数据库工作正常(当值存在时,我会获取所有其他值),但是当值不存在时,这就是我要解决的问题。
这是我的sudo代码,我们将不胜感激。
ref.Child("Location/That/Doesnt/Exist").GetValueAsync().ContinueWithTask(Task => {
if (task.IsFaulted){
//Do something
}
else if (task.IsCompleted){
DataSnapshot snap = task.Result;
if(snap.Value == null){
//This is what hangs. I get here and it just does nothing.
}
}
});
我很迷路。我不确定如何解决这个问题。我没有收到任何错误,但是就像该函数就此停止一样。
谢谢!
EDIT
所以要解决这个问题,我要做的是在路径中使用键==“ 0”和值== 0创建一个DB条目。然后我说,如果ChildCount大于1并且那个孩子有更多超过一个孩子,继续。
我觉得这是一种非常糟糕的方法。
答案 0 :(得分:1)
我遇到了同样的错误。我发现了一个例外,我得到了NullReference,似乎在android上,当在数据库上找不到它时,它返回Null,所以您必须将其转换:
if(snap.Value == null){ }
对此:
如果(snap == null && snap.Value == null)
您正在尝试在snap对象为null时访问snap.Value。
对不起,我的英语,希望对您有帮助。
答案 1 :(得分:0)
尝试斜杠
“位置/那个/不存在/存在/”