代码之家  ›  专栏  ›  技术社区  ›  Manas Saxena

为管理员用户获取其他用户firebase?

  •  0
  • Manas Saxena  · 技术社区  · 8 年前

    所有注册用户在firebase auth db中都有一封电子邮件和UID。UID用作firebase实时数据库中的密钥。firebase realtime db中的以下json结构

    users
    |
    |--UID1
       |
       |---Name:Amanda
       |---Surname:Waller
       |---age:30
       |---email:abc@gmail.com
    |--UID2
       |
       |---Name:MyName
       |---Surname:Mysurname
       |---age:39
       |---email:xyz.aaa@gmail.com
    

    现在,我有一个管理员用户,他需要访问其他用户的数据,例如,管理员希望通过电子邮件xyz搜索和检索用户。aaa@gmail.com,但我选择的JSON键是UID,有没有办法让管理员用户根据用户的电子邮件id获取UID?还是应该重新设计数据库?考虑到电子邮件可能包含此问题答案中所述的特殊字符,使用电子邮件作为关键似乎并不简单:

    Referencing authentication db data in real time db firebase

    1 回复  |  直到 8 年前
        1
  •  2
  •   Mohammed Rampurawala    8 年前

    您的数据库结构似乎很适合获取数据。

    可以有多种方法来搜索数据。

    childListener 添加新用户时,您必须更新本地用户列表

    1. 您可以使用firebase API仅获取具有指定值的特定记录,如:

    firebaseDB
                .ref("Users")
                .orderByChild("email")
                .equalTo("xyz.aaa@gmail.com")
                .once('value')
                .then((snapshot) => {
                    //Received Snapshot
                })
                .catch(er => console.log(JSON.stringify(er)));
    

    在第二种方法中,您需要在firebase数据库规则中索引电子邮件值,并且只需要在管理员输入完整的电子邮件id时进行搜索。