我想获取所有包含子节点“ notificationToken”的用户,并排除所有没有该节点的用户。我正在使用以下内容:
const ref = admin.database().ref('/Users');
const users = await ref.orderByChild('notificationToken').equalTo(****WHAT GOES HERE****).once('value').then((snapshot) => snapshot.val());
我不确定equalTo是否可以做我想做的事,我知道我可以用它来匹配确切的字符串或布尔值,但是如果用户有notificationToken节点,我怎么用它来匹配?
答案 0 :(得分:1)
您可以使用equalTo
来匹配数据库中节点/属性的确切值。
所以:
ref.orderByChild('notificationToken').equalTo(value)
返回ref
属性具有与notificationToken
完全相同的value
子节点。从最后一个链接开始,您可以使用startAt(null)
获取具有该属性的所有子节点,而不管其值或类型如何。
value
可以是任何允许的JSON类型,并且必须与数据库中存储的类型匹配。因此,如果notificationToken
是字符串值,那么value
也应该是字符串。
有关更多信息,请参见sorting and filtering data上的Firebase文档,尤其是how query data is ordered上的部分。