在创建新用户之前,我想检查Firebase以查看数据库中是否已存在用户名。我想在用户完成用户名文本字段编辑后立即执行此操作(表单的其余部分将不完整)。我试图访问Firebase数据库,但是我收到警告" / Users的监听器失败:permission_denied"。据我所知,为了读取/写入Firebase数据库,用户必须经过身份验证,显然用户注册在注册之前未经过身份验证。有没有办法在运行createUserWithEmail:password:completion:
方法之前访问数据库?
答案 0 :(得分:3)
要说清楚,让我先说明我做的事情不建议你为你的用例做这件事。但通常,您可以通过将该路径的安全规则设置为true来允许未经身份验证的用户访问数据库的某些部分:
{
"rules": {
".read": true,
".write": true
}
}
你不想要做这样的事情,因为你不想让公众访问每个人的用户名。
相反,我建议使用Cloud Functions for Firebase。您可以创建在用户选择用户名时触发的云功能,可能是通过在数据库中创建临时路径并使用数据库触发器。现在,如果您不熟悉Cloud Functions或Node.js,那么将会有很多新信息需要学习,但您会发现函数有很多用例,因此值得学习。
以下是一些要检查的资源: