Firebase检查具有相对/通配符路径的现有电子邮件

时间:2018-01-10 14:45:26

标签: firebase-realtime-database

我试图检查我的firebase数据库中用户的电子邮件,如果他们的电子邮件已经存在。我的json看起来像那样:

enter image description here

我不知道如何获得电子邮件的完整路径,因为每个用户都以唯一标识符开头而我没有这些信息。是否可以使用通配符/ users / * / email或类似的东西?

this.afdb.database.ref('users/*/email').orderByChild('email').on('value', (snapshot)=>{
  console.log(snapshot);
});

1 个答案:

答案 0 :(得分:1)

当针对某个位置运行Firebase数据库查询时,它会考虑该位置下的每个子节点。对于每个子节点,您可以在该子节点下的已知路径上测试属性的值。

没有对通配符的支持,你的案例似乎也不需要支持:

this.afdb.database.ref('users').orderByChild('email').equalTo("pqoo@poam.com").on('value', (snapshot)=>{
  snapshot.forEach((child) => {
    console.log(child.val());
  });
});

所以这两个变化是:

  1. 我们按users查询位置email,只返回值为pqoo@poam.com的节点。
  2. 可能会有多个结果。因此快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果的列表。因此,我们使用snapshot.forEach(...)来循环结果。