我为我的Alexa技能使用了Firebase函数。这是按预期工作,但我在数据库中的数据是特殊的,有时候查询不能返回任何值。没有结果的Firebase数据库
我的密钥是从0101到1231(MMDD),如果我查询最高密钥后,我没有得到任何回调,因为firebase没有任何数据。
如何设置查询,我发现在这种情况下第一个> =“0101”?
当前调用是
admin.database().ref("calendar/birthday")
.orderByKey().startAt(key).limitToFirst(1).once("child_added")
.then(function(snapshot) { ... })
我的数据库结构
"calendar" : {
"birthday" : {
"0111" : {
... -> 1st person
},
...
"0710" : {
... -> xth person
},
...
"1109" : {
... -> last person
}
}
}
我的Alexa的技能应该命名为下一个生日和它只会工作,直到09月和01月后,因为我不知道如何查询数据。或者我可以更好地构建我的数据来找到下一个生日?
您很可能被Firebase SDK的“数组强制”所捕获。有没有一种方法可以更改数据并在键前添加(例如“day_0101”)。这将防止强制和(如果这是问题的原因)将解决问题。 –
当然,我可以更改密钥,但是如何解决“找不到数据”的问题?我的最后一个键是“1109”,如果我用“key ='1110'”调用上面的查询,我将不会得到任何值(现在)。 – mars3142
你可以编辑你的问题来显示你正在查询的JSON(文本,没有截图)吗?您可以通过点击[Firebase数据库控制台](https://console.firebase.google.com/project/_/database/data)中的“导出JSON”链接来获取此信息。 –