首页 > 解决方案 > Firebase - Firestore - 创建一个函数来验证用户是否存在于 Auth 中

问题描述

我想验证用户是否存在于 firebase 的用户身份验证列表中。我知道我可以使用:

admin.auth().getUserByEmail(email)
admin.auth().getUser(uid)

我正在构建一个反应本机应用程序,因此我无法安装 firebase-admin,因为它需要我在应用程序中发送凭据,这太危险了,因为有人可以进行逆向工程并找到它们。

我发现我可以编写函数,所以我创建了一个单独的项目来创建和部署函数,这将作为后端工作。

现在我想在那里创建一个使用 firebase-admin 的函数,并能够使用上面列出的 2 种方法。

我发现我可以创建:

exports.addMessage = functions.https.onCall((data, context) => {
  // ...
});

并称之为:

var addMessage = firebase.functions().httpsCallable('addMessage');
addMessage({text: messageText}).then(function(result) {
  // Read result of the Cloud Function.
});

不确定使用 https.onCall 是否最适合这种情况,或者是否有更好的方法。

提前致谢。

标签: firebasereact-nativegoogle-cloud-firestore

解决方案


就文档所示 - 可在此处https.onCall()访问 - 以及使用安全调用方法(HTTPS)的事实而言,我相信这是您的情况的最佳选择,因为安装 firebase-admin 不适合您的情况。

https.onCall的官方文档协议规范还说:

如果您能够使用 Android、iOS 或 Web SDK,建议您这样做,而不是直接实现此协议。SDK 提供了节省编码时间和精力的功能,详见从您的应用调用函数

因此,如果您不想/可以使用SDK,请注意这一点,我相信这就是您所说的。考虑到这一点,我相信这是https.onCall()适合您情况的选择。

让我知道这些信息是否对您有帮助!


推荐阅读