是否可以在创建新用户之前访问Firebase数据? (迅速)

时间:2017-05-16 19:15:51

标签: swift firebase firebase-realtime-database firebase-authentication

在创建新用户之前,我想检查Firebase以查看数据库中是否已存在用户名。我想在用户完成用户名文本字段编辑后立即执行此操作(表单的其余部分将不完整)。我试图访问Firebase数据库,但是我收到警告" / Users的监听器失败:permission_denied"。据我所知,为了读取/写入Firebase数据库,用户必须经过身份验证,显然用户注册在注册之前未经过身份验证。有没有办法在运行createUserWithEmail:password:completion:方法之前访问数据库?

1 个答案:

答案 0 :(得分:3)

要说清楚,让我先说明我做的事情建议你为你的用例做这件事。但通常,您可以通过将该路径的安全规则设置为true来允许未经身份验证的用户访问数据库的某些部分:

{
   "rules": {
       ".read": true,
       ".write": true
    }
}

想要做这样的事情,因为你不想让公众访问每个人的用户名。

相反,我建议使用Cloud Functions for Firebase。您可以创建在用户选择用户名时触发的云功能,可能是通过在数据库中创建临时路径并使用数据库触发器。现在,如果您不熟悉Cloud Functions或Node.js,那么将会有很多新信息需要学习,但您会发现函数有很多用例,因此值得学习。

以下是一些要检查的资源:

Get Started

Cloud Functions Database Triggers

Cloud Functions Documentation