【问题标题】:Firebase functions user().onCreate: Pass parameters [duplicate]Firebase函数user().onCreate:传递参数[重复]
【发布时间】:2020-06-24 11:41:02
【问题描述】:

我有两种类型的用户,管理员和普通用户。在我的 firebase 数据库中,每个管理员在“文本”集合中都有一个文档。因此,当创建一个新用户时,我想检查它是否是管理员。 然而,在我的 Flutter 客户端上,除了电子邮件和密码之外,我无法传递任何其他参数,那么我的函数如何知道创建帐户的用户是否是管理员?

这是我没有检查的功能:

exports.onAdminCreate = functions.auth.user().onCreate((user) => {
// If user is an admin
try {
    return admin.firestore().collection('texts').doc(user.uid).create({author: user.displayName, text: null});
} catch (e) {
    console.log(e);
    return null;
}
// Else
console.log('No admin');
return null;
});

【问题讨论】:

  • 无法将附加信息传递给auth.user().onCreate 函数。典型的解决方法是在从客户端创建用户后调用可调用云函数,或者让该云函数处理整个用户创建并从客户端调用它。
  • @FrankvanPuffelen 好的,谢谢

标签: javascript firebase firebase-authentication google-cloud-functions


【解决方案1】:

我认为this 其他帖子对您很有帮助。如您所见,您可以使用 HashMap 将参数传递给 firebase 函数

Map<String, Object> data = new HashMap<>();
data.put("var1", text);
data.put("var2", text);

您可以在共享链接中查看完整示例。

【讨论】:

  • 感谢您的回答。问题是我没有直接从我的客户端调用该方法,它是在创建新用户时自动触发的,所以我必须将数据传递给 createUserWithEmailAndPassword 方法,这似乎是不可能的。我还以为可以在创建用户并将角色保存为云函数文件中的全局变量之前调用 Http Cloud Function,但这似乎是不可能的。
猜你喜欢
  • 2021-04-07
  • 2022-01-26
  • 2015-12-13
  • 2017-07-05
  • 2013-08-13
  • 2012-11-13
  • 1970-01-01
  • 1970-01-01
  • 2020-10-01
相关资源
最近更新 更多