【发布时间】:2016-11-11 06:51:35
【问题描述】:
我想在 firebase 的 Items 节点上保存一些数据。当我的规则是时,我能够保存
"Items":{
".write": "auth != null",
".read": "auth != null"
}
但我希望用户编写/更新他们的自己的项目并且我不想使用$变量,因为它会在我的路径上添加一些数据。那是
下面的方法将在我的路径上添加一些数据而不是/Items,它将是/key/Items
{
"rules": {
"Items": {
"$user_id": {
".read": "auth != null",
".write": "$user_id === auth.uid"
}
}
}
}
因此,我看到的最好的方法就是这样写我的规则
"Items":{
".read": "auth != null",
".write": "(data.exists() && data.child('userId').val() === auth.uid) || (!data.exists() && newData.child('userId').val() === auth.uid)"
}
}
当我在模拟器上运行以下代码时,一切正常
{
"userId":"xxxxxxxxxxxxxxxxx"
}
但是当我尝试从手机上传数据时,出现错误
setValue at /Items/-KWH6tgdLPGTdascf-w3 failed: DatabaseError: Permission denied
我哪里错了?
【问题讨论】:
标签: android firebase firebase-realtime-database firebase-authentication