Я только начинаю с Firebase.Firebase simple user auth rule
Я использую один из шаблонов quickstart-js.
Я пытаюсь добавить правило безопасности .read, чтобы пользователи могли читать только сообщения, созданные созданным.
Я немного смущен, так как правило проходит, если я тестирую auth.id
, но не удалось, если я проверил против auth.uid
(я понимаю, что auth.uid верен).
В тренажере, это правило не удается:
{
"rules": {
// ".read": "auth != null",
".write": "auth != null",
"posts": {
"$post": {
".read": "data.child('uid').val() === auth.uid",
}
}
}
}
Вот структура базы данных:
{
"posts" : {
"-KL6ecPO67H5B8SmPHJr" : {
"body" : "Just testing out the firebase system.",
"starCount" : 0,
"title" : "Camp Se has it's first blog post",
"uid" : "vaZrC0sSdYTiou587IuePVw9uRT2"
},
"-KL6fUBOhsc4zosJbwjb" : {
"body" : "Another post ja ja ja\n",
"starCount" : 0,
"title" : "Another post",
"uid" : "vaZrC0sSdYTiou587IuePVw9uRT2"
}
},
"user-posts" : {
"vaZrC0sSdYTiou587IuePVw9uRT2" : {
"-KL6ecPO67H5B8SmPHJr" : {
"body" : "Just testing out the firebase system.",
"starCount" : 0,
"title" : "Camp Se has it's first blog post",
"uid" : "vaZrC0sSdYTiou587IuePVw9uRT2"
},
"-KL6fUBOhsc4zosJbwjb" : {
"body" : "Another post ja ja ja\n",
"starCount" : 0,
"title" : "Another post",
"uid" : "vaZrC0sSdYTiou587IuePVw9uRT2"
}
}
},
"users" : {
"vaZrC0sSdYTiou587IuePVw9uRT2" : {
"email" : "[email protected]com"
}
}
}
Результаты моделирования Подробности:
Simulation results
Type read
Location /posts/KL6ecPO67H5B8SmPHJr/
Data null
Auth { "provider": "google", "uid": "vaZrC0sSdYTiou587IuePVw9uRT2" }
Admin false
edit Read denied
close
Line 7 (/posts/KL6ecPO67H5B8SmPHJr)
read: "data.child('uid').val() === auth.uid"
Вы включили изображение вашего дерева JSON в свой вопрос. Пожалуйста, замените это на фактический JSON как текст, который вы легко можете получить, нажав кнопку «Экспорт» в консоли базы данных Firebase. Наличие JSON в качестве текста делает его доступным для поиска, позволяет нам легко использовать его для тестирования с вашими фактическими данными и использовать его в нашем ответе, и в целом это просто хорошая вещь (tm). –
Когда вы открываете Детали сообщения об ошибке, что он говорит. Это как текст тоже было бы более полезным, чем как скриншот. –