【问题标题】:Firebase database Permission denied error facing using swift 4.2Firebase 数据库 Permission denied 使用 swift 4.2 面临的错误
【发布时间】:2018-09-01 11:00:11
【问题描述】:
guard let uid = user?.uid  else {return}

let usernameValue = ["username":username]
let value = [uid: usernameValue]

Database.database().reference().child("user").updateChildValues(value, withCompletionBlock: { (err, ref) in
    if let err = err{
        print("failed to save user in db:", err)
    }else{
        print("successfully Work")
    }
})

这是我面临的错误:

未能在数据库中保存用户:错误 Domain=com.firebase Code=1 "Permission denied" UserInfo={NSLocalizedDescription=Permission denied}

【问题讨论】:

    标签: ios swift firebase


    【解决方案1】:

    您无权管理数据库中的/user路径。

    检查您的 Firebase 安全规则。

    【讨论】:

    • service cloud.firestore { match /databases/{database}/documents { match /{document=**} { 允许读取,写入:如果为真; } } }
    • 这里如何设置规则
    • { match /databases/{database}/documents { match /{document=**} { 允许读,写; } } }
    • 以上规则仅用于测试目的。它必须在生产中更改。检查此链接:firebase.google.com/docs/firestore/security/get-started
    • 我刚刚注意到您正在使用实时数据库代码并在评论中显示 Firestore 规则。 Firestore 规则对实时数据库没有影响。您必须检查您的实时数据库安全规则或在您的项目中使用 Firestore 代码
    【解决方案2】:

    允许未经身份验证的访问您的数据库。

    进入项目控制台中的“数据库”面板,选择“规则”选项卡并将内容替换为以下规则:

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

    这使您的新数据库对每个人都可读和可写。

    避免此问题的另一个技巧是调用 Firebase 身份验证的 signIn... 方法之一,以确保用户在访问数据库之前已登录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-18
      • 1970-01-01
      • 1970-01-01
      • 2021-04-08
      • 1970-01-01
      • 2021-01-10
      • 1970-01-01
      • 2018-04-18
      相关资源
      最近更新 更多