我拥有用户电子邮件的创建和保存,但是我可以做电子邮件更新。使用火箱,炸弹和反应

发布于 2025-01-23 15:48:40 字数 684 浏览 0 评论 0原文

这是我的代码:

exports.saveUserEmail = functions.region('europe-central2').auth.user().onCreate((user) => {

    const email = user.email;
    const uid = user.uid;

    const dt = dateTime.create();
    const formatted = dt.format("Y-m-d H:M:S");

    return admin.firestore().collection('users').doc(uid).set({uid: uid, email: email, created_at: formatted});
  });

我尝试这样的更新尝试:

exports.saveEditedEmail = functions.region('europe-central2').auth.user().updateUser((user, uid) => {
    const email = user.email;  
    return admin.firestore().collection('users').doc(uid).set({uid: uid, email: email,});
})

我的错误在哪里?

This is my code:

exports.saveUserEmail = functions.region('europe-central2').auth.user().onCreate((user) => {

    const email = user.email;
    const uid = user.uid;

    const dt = dateTime.create();
    const formatted = dt.format("Y-m-d H:M:S");

    return admin.firestore().collection('users').doc(uid).set({uid: uid, email: email, created_at: formatted});
  });

and i tried do update like this:

exports.saveEditedEmail = functions.region('europe-central2').auth.user().updateUser((user, uid) => {
    const email = user.email;  
    return admin.firestore().collection('users').doc(uid).set({uid: uid, email: email,});
})

Where is my mistake?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

被你宠の有点坏 2025-01-30 15:48:40

没有任何onupdate() cloud函数的auth触发器。取而代之的是,您可以创建 callable函数。

exports.addMessage = functions.https.onCall((data, context) => {
  const { email } = data;
  // update email in Firebase Auth and Firestore
});

另外,如果用户试图更新自己的配置文件,则可以直接在Firestore中更新文档。您可以设置以下安全规则,以便用户只能更新自己的个人资料:

match /users/{userId} {
  allow update: if request.auth.uid == userId; 
}

There isn't any onUpdate() auth trigger for Cloud functions. Instead your can create a callable function and call it directly from client side to update your user.

exports.addMessage = functions.https.onCall((data, context) => {
  const { email } = data;
  // update email in Firebase Auth and Firestore
});

Alternatively, you can directly update the document in Firestore if the user tries to update their own profile. You can setup the following security rules so a user can update their own profile only:

match /users/{userId} {
  allow update: if request.auth.uid == userId; 
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文