Firebase数据库查询equalTo

时间:2020-01-15 01:47:24

标签: javascript firebase firebase-realtime-database

我想获取所有包含子节点“ 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节点,我怎么用它来匹配?

1 个答案:

答案 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上的部分。