我在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为这些用户分配自定义声明-有没有办法在保持无服务器状态的同时执行此操作?
如果没有,有什么替代方法?
您确实需要为此使用Admin SDK。
如dedicated section of the doc中所述,“应在特权服务器环境中设置自定义声明通过Firebase Admin SDK”。对于“特权服务器环境”,该文档指的是您完全控制的服务器或运行后端代码(并且也由您控制,因为它在您自己的项目中)的Firebase Project中的Cloud Function。] >
例如,对于Admin Node.js SDK,您只需调用setCustomUserClaims()
方法,并传递用户的setCustomUserClaims()
和定义要设置的声明的对象。
在您的情况下,您很可能应该在创建用户时触发Cloud Function,请参阅uid
。
关于要分配的角色种类,您没有提供很多详细信息。如果可能的角色不同,您将需要一种方法来确定要分配给哪个用户的角色。
您可能对我在“如何创建用于管理用户访问权限和角色的管理模块”中写的以下doc感兴趣