无法在Android

时间:2018-08-06 20:02:29

标签: android firebase unity3d firebase-realtime-database

我想在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并且那个孩子有更多超过一个孩子,继续。

我觉得这是一种非常糟糕的方法。

2 个答案:

答案 0 :(得分:1)

我遇到了同样的错误。我发现了一个例外,我得到了NullReference,似乎在android上,当在数据库上找不到它时,它返回Null,所以您必须将其转换:

if(snap.Value == null){ }

对此:

如果(snap == null && snap.Value == null)

您正在尝试在snap对象为null时访问snap.Value。

对不起,我的英语,希望对您有帮助。

答案 1 :(得分:0)

尝试斜杠

  

“位置/那个/不存在/存在/”