Firebase:检查节点是否存在

时间:2017-02-11 15:37:34

标签: android json firebase-realtime-database

我有一个检查节点是否可用的功能。功能如下

 {
  "PKWC1865" : "77.6709266,12.8541147",
  "QKAR6584" : "79.6944701,11.1072002",
  "Room:ANWE3226" : {
    "FREESLOTS" : "2,3,4",
    "USER1" : "BC:QKAR6584",
    "USER2" : "NONE",
    "USER3" : "NONE",
    "USER4" : "NONE"
  }
}

这是我的json

{{1}}

sampledb是我的根。我正在检查db中是否存在参数ID。但是从不调用onDataChange方法。因此我永远无法检查给定节点是否存在。

1 个答案:

答案 0 :(得分:0)

您对异步模式的同步感到困惑。您的函数会调用Firebase获取数据,但在得到答案之前立即返回。 Firebase必须调用网络来获取数据,这需要时间。当答案到来时,为时已晚,因为您已经尝试返回一个值。

您需要做的是让您的函数将回调作为附加参数。当数据到达时,使用该值调用此回调。要做到这一点,您几乎肯定还需要重写您首先打电话的方式。如果您已将上游逻辑设计为期望在此处进行同步操作,则还需要更改上游逻辑以容忍异步行为。