我的数据库具有以下结构:
"groupA" : {
"applications" : {
"applicationID_132" : {
"status" : "accepted"
},
"applicationID_423" : {
"status" : "declined"
},
"applicationID_562" : {
"status" : "accepted"
}
}
}
我试图通过以下方式检索具有“已接受”状态的应用程序快照(以便能够跳过获取所有应用程序):
return admin.database().ref('groupA').child('applications').orderByValue('status').equalTo('accepted')
.once('value')
.then(acceptedApplicationsSnapshot => {
似乎不起作用,也尝试了orderBy和orderByValue。可能遗漏了什么,或者处理这种情况的更好方法是什么?
感谢您的任何帮助!
最佳答案
尝试使用child.orderByChild().value()
在您的情况下:
return admin.database().ref('groupA').child('applications').orderByChild('status').equalTo('accepted')
.once('value')
.then(acceptedApplicationsSnapshot => {
您也可以使用
orderByValue()
,但是首先您需要获取要订购的参考-函数不接受参数。如何使用orderByValue()?
如果您要使用
.child(..)
,则applications
在您的情况下返回的引用是orderByValue
,而不是在执行此操作之前需要获取对“状态”的引用,例如:admin.database().ref('groupA').child('applications').child('status').orderByValue()
,然后您将应用数据之一filtering methods,例如。.equalTo('accepted')...
关于javascript - Firebase orderByValue()。equalTo()不是函数(Node JS),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55131508/