【问题标题】:How to apply firebase database security rules from swift code如何从 swift 代码中应用 firebase 数据库安全规则
【发布时间】:2022-01-03 09:32:41
【问题描述】:

我添加了启用身份验证的 firebase 安全规则。我已经根据密钥授予了写访问权限..

Firebase 规则模板

{
  "rules": {
    "users": {
        ".write": "auth.uid == \"jack\""
    }
  }
}

现在我希望在 swift 代码中添加该规则

  var ref: DatabaseReference!
  ref = Database.database().reference()

Setting data as

ref.child("users/jack").setValue("jack")..// Something here to change.

【问题讨论】:

    标签: ios swift firebase firebase-realtime-database


    【解决方案1】:

    您不能从您的 Swift 代码中设置用户的 UID。毕竟,如果你能做到这一点,任何人都可以通过获取你的配置数据并针对你的数据库运行他们想要的任何代码来做到这一点。

    为用户设置 UID 的唯一方法是 create a custom authentication provider,这只能在受信任的环境中完成,例如您的开发机器、您控制的服务器或 Cloud Functions。


    为了保护您的数据库,请在您的 Swift 代码中登录 Firebase 身份验证(例如使用 anonymous authentication),然后记录 UID,并在您的安全规则中使用它而不是 jack

    【讨论】:

    • 谢谢.. :) 我刚刚在下面发布了代码。请检查
    【解决方案2】:

    按照弗兰克的建议。

    我已经做到了

    pod 'Firebase/Auth'

     import FirebaseAuth
    
       Auth.auth().signInAnonymously { authDataResult, errorObj in
       if let error = errorObj {
              print("Sign in failed:", error.localizedDescription)
       } else {
         guard let userIdRecieved = authDataResult?.user.uid else {return}
                ref.child("users/\(userIdRecieved)/...
                        
                    
    

    【讨论】:

      猜你喜欢
      • 2016-09-16
      • 1970-01-01
      • 2020-08-08
      • 2018-12-15
      • 1970-01-01
      • 2021-04-09
      • 1970-01-01
      • 2021-10-26
      相关资源
      最近更新 更多