我正在尝试创建一个可搜索的字段,该字段在firebase应用程序中搜索已注册的用户并返回所有紧密匹配项的列表。原因是我需要找到搜索到的用户uid以邀请他们加入游戏,然后传递推送通知以提醒他们已收到邀请。我不知道这是否可行,因为文档似乎暗示它必须与电子邮件地址进行1对1匹配才能返回。
我遇到的问题是firebase-admin中的admin.auth()要求节点模块执行相关工作。因此,我想知道是否还有另一个SDK允许您执行此操作,或者可以使用react native expo应用程序中的标准firebase导入来产生此功能。
不幸的是,我没有代码,因为似乎没有任何工作,并且都指向在基于节点的项目中使用firebase-admin程序包来执行查询的肮脏工作。
对此有任何帮助,将不胜感激。
答案 0 :(得分:1)
仅通过客户端SDK(例如React Native的SDK)无法在所有Firebase身份验证用户中进行搜索。允许这样做将带来很大的安全风险。
有两种常用的方法可以安全地搜索用户:
在每个用户注册时将有关每个用户的信息写入数据库(例如Cloud Firestore或实时数据库),然后在需要时搜索数据库。这样,您的代码可以控制要写入的数据并可以进行搜索。
Firebase具有在可信任环境(例如开发计算机,您控制的服务器或云功能)中运行的Admin SDK。这些SDK具有列出用户的选项,这意味着您可以搜索他们。如果将其中一个Admin SDK封装在自己构建并保护自己的自定义API中,则可以从应用程序代码中调用它。