0
私はトークンをサーバに送りますが、何か問題があります。私はFirebaseシミュレータの権限をテストするために行って、.validate
行が間違っていると私に伝えていることを知りました。ここに私のセキュリティルールだFirebaseセキュリティパーミッションは、文字列がisStringの使用中に文字列ではないことを伝えます。
{
"rules":{
"tokens":{
"users":{
"$uid":{
".read":"auth !== null && auth.uid === $uid",
".validate":"newData.isString()", // wrong here. idk why
".write":"auth !== null && $uid === auth.uid && (!data.exists() || newData.val() !== data.val())"
}
}
}
}
}
データ構造:以下のように
root
|- tokens
|- users
|- uid:token_value
私の入力は、次のとおりです。
シミュレーションタイプ:書き込み
場所: /トークン/ユーザー/ hA4hZrBieISwMOZaMYe7m6K5tpI3
データ(JSON):
{
"hA4hZrBieISwMOZaMYe7m6K5tpI3": "hi"
}
認証:真
プロバイダ: Googleの
UID: hA4hZrBieISwMOZaMYe7m6K5tpI3
問題がデータで"hi"
です(JSON )は、文字列でないval ue。なぜどんなアイデア?
こんにちは感謝回答。私はちょっと混乱しているようだ。データ構造は私の質問で提供したものに従いますか?または、uidとトークンを組み合わせて最初のuidの下に別のノードを作成しますか?私は 'users/uid'のように見え、' uid'にはトークンが含まれているからです。私が思っているのは、私が欲しいものを達成するために 'tokens/users /'に設定している場所を改訂することです。それ以降は失われてしまいます。 – CraftedGaming
私はあなたが単純な文字列hi "')を '/ tokens/users/hA4hZrBieISwMOZaMYe7m6K5tpI3'に変更します。その場合、元のルールは正しいですが、問題はJSONオブジェクトを作成しようとしていることです。 –