手动添加具有自定义声明的Firebase用户
我正在开发一个只有手动添加的用户才能访问的应用程序(我使用给定的电子邮件和密码在Firebase控制台的手动添加具有自定义声明的Firebase用户,firebase,firebase-authentication,Firebase,Firebase Authentication,我正在开发一个只有手动添加的用户才能访问的应用程序(我使用给定的电子邮件和密码在Firebase控制台的auth选项卡中手动添加用户,然后用户可以使用移动应用程序登录) 我想在添加时向一些用户添加“经理”角色,然后手动添加。我听说自定义声明可以解决此问题,但我找不到在Firebase控制台中手动添加自定义声明的方法 可能吗?如果不是,我如何在手动创建用户时添加Firebase用户角色 谢谢大家! 如下所述(我无法将其标记为重复,因为它尚未被接受): 在撰写本文时,没有任何方法可以从Fireba
auth
选项卡中手动添加用户,然后用户可以使用移动应用程序登录)
我想在添加时向一些用户添加“经理”角色,然后手动添加。我听说自定义声明
可以解决此问题,但我找不到在Firebase控制台中手动添加自定义声明
的方法
可能吗?如果不是,我如何在手动创建用户时添加Firebase用户角色
谢谢大家! 如下所述(我无法将其标记为重复,因为它尚未被接受):
在撰写本文时,没有任何方法可以从Firebase控制台手动添加自定义声明。您需要使用云函数(或您完全控制的服务器,如文档中所述,即一个“”,其中您可以使用管理SDK、Node.js、Java、Python、Go或C#中的一个)
我通常使用临时云函数为特定用户设置声明,如下所示:
exports.assignSpecificClaim = functions.firestore
.document('tempoSpecificClaim/{tempoId}')
.onCreate((snap, context) => {
const claims = {};
claims['admin'] = true;
claims['batman'] = true;
const userId = '26sn9Fvn0hNNG7cs4M1agjzhN3y2';
return admin.auth().setCustomUserClaims(userId, claims);
});
如您所见,在临时tempoSpecificClaim
Firestore集合中创建文档会触发此函数
以下是如何使用它:
- 首先,将特定的安全规则添加到Firestore安全规则中:
这样,只能从Firebase控制台在match/tempospecificlaim/{tempoDoc}{allow read,write:if false;}。
集合中创建文档tempospecificlaim
- 将用户uid粘贴到云函数中,重新部署它并在集合中创建一个虚拟文档。触发云功能并设置声明
- 完成测试后,您将删除
集合以及相应的安全规则,删除tempospecificlaim
中的临时云函数并重新部署它index.js
这不是一个非常精细和优雅的方法,但它确实起到了作用…文档没有帮助吗@wiesson谢谢,我已经阅读了文档,但是没有解释如何使用Firebase控制台手动添加
自定义索赔