をシミュレートする方法は、私のデータベースです:Firebaseルールシミュレータ:ここでプッシュ
{
"lists": {
"list1_id_1": {
"field1": "some value",
"field2": "some value"
}
}
}
私は、すべてのユーザーが新しいリストを作成できるようにしたいが、既存のものを変更していないので、私は次の規則試してみました:
{
"rules": {
"lists": {
".read": "true",
".write": "!data.exists()"
}
}
}
を
私は/lists/
に次のデータを書き込もうとしたとき、これは動作しませんでした:
{ "field1": "qq", "field2": "ww" }
どうやら、/lists /が既に存在するため、 ".write"ルールは書き込みに失敗しました。
だから私は、次の規則を試してみました:これはどちらか動作しませんでした
{
"rules": {
"lists": {
".read": "true",
"$list_id": {
".write": "!data.exists()"
}
}
}
}
、Firebaseシミュレータは、書き込み操作を失敗したルールを選択しなかったので、私は「.WRITE」であるので、それはだと思います"リスト"には欠けている。
ここで私を助けてください。 私の問題は両方のルールと、シミュレータ内の/ lists /に新しい項目をプッシュしようとした方法と思われる。
P.S.私は、新しいデータをプッシュしようとすると、Firebaseによってlist_idが生成されることを知っていますが、この知識をどのようにシミュレータに使用するかはわかりません。
ありがとうございます! Slavik
しかし、シミュレータの/ lists /に新しい項目をプッシュして、ルールが正しいことを確認するにはどうすればよいですか? – user2145097
'push'は、指定された場所に一意のIDを持つ子を作成しているだけです。だから、シミュレータでは、あなたが知っていることが分かっている子キー、 '/ lists/some-random-string'に位置を設定するだけです。シミュレータにはプッシュシミュレーションが組み込まれていませんが、これを行うことは事実上同じことです。私はこれで私の答えを更新しました。 – Grimthorr