Firebase 数据库 Permission denied 使用 swift 4.2 面临的错误
Posted
技术标签:
【中文标题】Firebase 数据库 Permission denied 使用 swift 4.2 面临的错误【英文标题】:Firebase database Permission denied error facing using 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
【问题讨论】:
【参考方案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... 方法之一,以确保用户在访问数据库之前已登录。
【讨论】:
以上是关于Firebase 数据库 Permission denied 使用 swift 4.2 面临的错误的主要内容,如果未能解决你的问题,请参考以下文章
Firebase Cloud Functions Firestore 触发器产生:错误:7 PERMISSION_DENIED:缺少权限或权限不足
FIREBASE WARNING:设置为/ notifications / failed:permission_denied
Firebase云Firebase。如何在本地模式下在项目间移动数据