将角色分配给无服务器Firebase应用程序的用户

问题描述 投票:0回答:1

我在React中有一个使用Firebase Firestore的无服务器应用程序。

该应用程序以编程方式创建新用户,并将数据存储到名称与新创建的用户ID相同的文档中。

firebase.auth().createUserWithEmailAndPassword(
        customerEmail.current.value, 
        customerPassword
    ).then(function(user) {
        console.log("UID!!!!!!!!!!!!!!!!!!!!!!!", user, user.user.uid)
        firebase
        .firestore()
        .collection('sessions')
        .doc(user.user.uid).set(
            {...context.state}
        ).then(() => {
            console.log("DATA SAVED SUCCESSFULLY!")
        })
    })

下一步,我要在创建这些用户时分配角色。

我真的很想使用admin sdk为这些用户分配自定义声明-有没有办法在保持无服务器状态的同时执行此操作?

如果没有,有什么替代方法?

javascript firebase firebase-authentication serverless user-roles
1个回答
1
投票

您确实需要为此使用Admin SDK。

dedicated section of the doc中所述,“应在特权服务器环境中设置自定义声明通过Firebase Admin SDK”。对于“特权服务器环境”,该文档指的是您完全控制的服务器或运行后端代码(并且也由您控制,因为它在您自己的项目中)的Firebase Project中的Cloud Function。] >

例如,对于Admin Node.js SDK,您只需调用setCustomUserClaims()方法,并传递用户的setCustomUserClaims()和定义要设置的声明的对象。

在您的情况下,您很可能应该在创建用户时触发Cloud Function,请参阅uid


关于要分配的角色种类,您没有提供很多详细信息。如果可能的角色不同,您将需要一种方法来确定要分配给哪个用户的角色。

您可能对我在“如何创建用于管理用户访问权限和角色的管理模块”中写的以下doc感兴趣

© www.soinside.com 2019 - 2024. All rights reserved.