在创建我的新用户之前,我想检查 Firebase 以查看该用户名是否已存在于数据库中。我想在用户完成编辑用户名文本字段后立即执行此操作(我的表单的其余部分将不完整)。我试图访问 Firebase 数据库,但收到警告“/Users 的监听器失败:permission_denied”。据我了解,为了读取/写入 Firebase 数据库,用户必须经过身份验证,显然,注册用户在注册之前未经过身份验证。有什么方法可以在运行 createUserWithEmail:password:completion:
方法之前访问数据库?
最佳答案
为了清楚起见,让我先声明一下,我不建议您针对您的用例执行此操作。但一般来说,您可以通过将该路径的安全规则设置为 true 来允许未经身份验证的用户访问部分数据库:
{
"rules": {
".read": true,
".write": true
}
}
您不想做这样的事情,因为您不想让公众访问每个人的用户名。
相反,我建议使用 Cloud Functions for Firebase。您可以创建一个在用户选择用户名时触发的 Cloud Functions,可能是通过在数据库中创建一个临时路径并使用数据库触发器来实现。现在,如果您不熟悉 Cloud Functions 或 Node.js,将会有很多新信息需要预先学习,但您会发现 Functions 有很多用例,因此值得学习。
这里有一些资源可供查看:
关于swift - 是否可以在创建新用户之前访问 Firebase 数据? ( swift ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44009799/