我正在开发一款需要能够管理用户列表的Android应用。问题是,与用户自行注册和管理自己的帐户的社交应用相比,Firebase似乎并没有为这种情况提供太多支持。我可以在Firebase控制台中创建用户,但这还不够。
用户将通过电子邮件和密码注册,一些用户必须具有管理员权限并被允许编辑用户列表,我可以使用安全规则强制执行此操作。但是,Firebase控制台中列出的用户没有任何地方可以为权限添加额外信息,因此此信息必须放在主数据库中。在控制台中编辑数据库树是不合理的,因此必须在应用程序中完成。
第一个问题是,无法从应用程序获取用户列表。作为解决方法,我只能使用 createUserWithEmailAndPassword ()函数在应用中创建用户。然后,我可以在主数据库中保存额外的用户信息,使它们保持同步。
除了小问题(例如新创建的用户自动登录,注销管理员用户),该功能开始失败,错误日志指示“TOO_MANY_ATTEMPTS_TRY_LATER”。这是不可接受的。
任何建议将不胜感激。谢谢。
答案 0 :(得分:1)
用户必须通过电子邮件和密码进行注册,有些用户必须这样做 拥有管理员权限,并允许编辑用户列表,我可以 使用安全规则强制执行此操作。但是,用户列出了 Firebase控制台没有任何地方可以为其添加额外信息 权限,所以此信息必须在主数据库中
您应该为管理员设置一个单独的worflow,将管理员UID添加到数据库节点“admins”。
然后,无论何时您需要检查您的用户是否是使用规则的管理员,您都可以使用类似的内容 “.write”:“root.child('admins /'+ $ user_id).exists()”
在其他用户中创建和登录对我来说似乎非常不直观,我建议使用dynamic links来邀请,让受邀用户,安装应用,创建自己的用户并自行登录。然后,您可以使用动态链接信息查看邀请他们的人并采取相应行动。