Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为无服务器firebase应用程序的用户分配角色_Javascript_Firebase_Google Cloud Firestore_Firebase Authentication_User Roles - Fatal编程技术网

Javascript 为无服务器firebase应用程序的用户分配角色

Javascript 为无服务器firebase应用程序的用户分配角色,javascript,firebase,google-cloud-firestore,firebase-authentication,user-roles,Javascript,Firebase,Google Cloud Firestore,Firebase Authentication,User Roles,我在React中有一个使用firebase firestore的无服务器应用程序 应用程序以编程方式创建新用户,并将数据添加到与新创建的用户id同名的文档中 firebase.auth().createUserWithEmailAndPassword( customerEmail.current.value, customerPassword ).then(function(user) { console.log("UID!!!!!!!!

我在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!")
        })
    })
接下来,我想在创建这些用户时分配角色

我真的很想使用AdminSDK为这些用户分配自定义声明-在保持无服务器的情况下,有没有办法做到这一点


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

您确实需要使用AdminSDK来实现这一点

如中所述,“应通过Firebase Admin SDK从特权服务器环境设置自定义声明”

“特权服务器环境”指的是您完全控制的服务器或Firebase项目中运行后端代码的云功能(您也可以控制,因为它在您自己的项目中)

是“一个无服务器的
框架,允许您自动运行后端代码以响应Firebase功能触发的事件”

例如,对于Admin Node.js SDK,您只需调用该方法,传递用户的
uid
,以及定义要设置的声明的对象

在您的情况下,您最有可能在用户创建时触发云函数,请参阅相应的云函数


对于要分配的角色类型,您没有给出很多详细信息。如果存在不同的可能角色,您将需要一种方法来决定将哪些角色分配给哪个用户


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

那么我需要创建web服务器吗?AdminSDK似乎无法与React一起使用?我无法解析“http2”不,您不需要创建web或应用程序服务器。如上所述,所有这些都可以通过“一个无服务器框架来完成,该框架允许您自动运行后端代码以响应Firebase功能触发的事件”