我有一个检查节点是否可用的功能。功能如下
{
"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方法。因此我永远无法检查给定节点是否存在。
答案 0 :(得分:0)
您对异步模式的同步感到困惑。您的函数会调用Firebase获取数据,但在得到答案之前立即返回。 Firebase必须调用网络来获取数据,这需要时间。当答案到来时,为时已晚,因为您已经尝试返回一个值。
您需要做的是让您的函数将回调作为附加参数。当数据到达时,使用该值调用此回调。要做到这一点,您几乎肯定还需要重写您首先打电话的方式。如果您已将上游逻辑设计为期望在此处进行同步操作,则还需要更改上游逻辑以容忍异步行为。