私は次のような場合があります。すでにノードが存在する場合、そのノードを更新(上書き)するためのアクセスを拒否することはできますか?例えば、友人への追加要求は、私が望むように、この機能はデータベース内でルールを設定するため一度実行されましたが、機能しません。どのようにこれを修正することができますか?Firebaseデータベースでノードを作成した後、変更へのアクセスを禁止するにはどうすればよいですか?
ルール
// friends
"friends": {
"$ownerID": {
"friendIncomingRequests": {
"$secondUserID": {
".write": "!data.exists()" // Only allow new nominations to be created
}
},
"friendOutgoingRequests": {
"$secondUserID": {
".write": "!data.exists()" // Only allow new nominations to be created
}
}
}
}
データ
"friends" : {
"8OdvaGQfMVdJrlCxdc5pOaj09hy2" : {
"friendOutgoingRequests" : {
"mp9pfsfVQKavwYddjYYPC5Ja9N93" : {
"timeStamp" : 1.495514876872129E9,
"userID" : "mp9pfsfVQKavwYddjYYPC5Ja9N93",
"userName" : "Tim C."
}
}
},
"mp9pfsfVQKavwYddjYYPC5Ja9N93" : {
"friendIncomingRequests" : {
"8OdvaGQfMVdJrlCxdc5pOaj09hy2" : {
"senderID" : "8OdvaGQfMVdJrlCxdc5pOaj09hy2",
"senderName" : "Alexsander K.",
"timeStamp" : 1.495514876872129E9
}
}
}
},
更新 私はルールでも、このコードを持っているので、問題は、このコードではあると思います。しかし、どうすれば修正できますか?
"rules": {
".read": "auth != null",
".write": "auth != null",
}
アップデート1:ここではすべてのルールがあります。私は友人だけに特定の書き込みルール(更新)を作成する必要があります。私はルールの個々のブランチごとに例を見ましたが、あるブランチに対していくつかの特定のルールを実行する必要がある場合は、標準のルールが必要です。
{
"rules": {
".read": "auth != null",
".write": "auth != null",
// card location
"cardLocation": {
// Allow anyone to read the GeoFire index
//".read": true,
// Index each location's geohash for faster querying
".indexOn": "g",
},
"cards": {
".indexOn": "ownerID"
},
"userListEvents": {
"$uid": {
".indexOn": "isConfirmed"
}
},
"userImages": {
"$uid": {
"userProfileImages": {
".indexOn": "isoDate"
}
}
},
// tags
"userTags": {
"$uid": {
".indexOn": "isSelected"
}
},
// people search
//
"userLocations": {
".indexOn": "g"
},
// friends
"friends": {
"$ownerID": {
"friendIncomingRequests": {
"$secondUserID": {
".write": "!data.exists()"
}
},
"friendOutgoingRequests": {
"$secondUserID": {
".write": "!data.exists()"
}
}
}
}
}
}
私はちょっと混乱しています。最初のルールに追加のルールを追加して、それがどのように見えるかを正確に見ることができますか?私はあなたのための解決策があるかもしれないと思うが、その明確化が助けになるだろう。 –
@JenPersonこんにちは!私はすべてのデータベースルールを書きました。見てください。どうもありがとうございます! – Alexander
ありがとうございます!ああ、そしてもう一つ:あなたはそれが動作しないと言うとき、テストでは、書き込みは常に許可される、または許可されていないことを意味しますか? –