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

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

在创建我的新用户之前,我想检查 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 有很多用例,因此值得学习。

这里有一些资源可供查看:

Get Started

Cloud Functions Database Triggers

Cloud Functions Documentation

关于swift - 是否可以在创建新用户之前访问 Firebase 数据? ( swift ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44009799/

相关文章:

swift - 在 Swift 3.0 中循环遍历子字符串

swift - 如何检索解析附加列数据

android - 如何确保用户只能在 firebase 中查看和访问自己的数据?

android - 如何等待 firebase 数据获取完成并获取不是 react native promise 的值?

javascript - 每次我访问控制台时,firebase 数据库都会重置

ios - 使用 Shark Food 静音开关的 Swift 闭包语法?

ios - Alamofire:[结果]:失败:错误域=NSURLErrorDomain 代码=-999 "cancelled"

firebase - 方法 'setData' 没有为类型 'documentreference' 定义

java - 如何访问 Firebase 数据库的这些部分?

java - 无法在 Firebase Android 中检索 CurrentUser 的数据