В моем приложении у меня есть vc1, который выдвигает на vc2.Внутри vc2 я вытащил некоторые данные из Firebase.
Проблема заключается в том, что, когда я устанавливаю свои правила на значения, указанные ниже, при включении vc2 я продолжаю получать failed: permission_denied
{
"rules": {
"sneakers": {
".read": "auth != null || auth.uid === null",
".write": "auth.uid != null"
},
"users": {
"$uid": {
".read": "$uid === auth.uid",
".write": "$uid === auth.uid"
}
}
}
}
Если я вернусь к vc1, измените значения наниже, то у меня нет проблем, и я получаю доступ
{
"rules": {
".read": "auth.uid != null",
".write": "auth.uid != null"
}
}
Но вот в чем дело, как только я верну их к первым значениям, вернитесь к vc1, затем нажмите на vc2, тогда я все еще могу получить доступв базу данных.Если я удаляю приложение и перезапускаю его, процесс повторяется.
Я хочу использовать первые значения, потому что хочу сохранить данные на узле пользователя в безопасности.
Почему победиля продолжаю получать permission_denied
с моими первыми значениями, вносить изменения в правила, затем после того, как я изменяю их обратно, я больше не получаю permission denied
?Где я ошибаюсь в моих правилах
vc2:
let root = Database.database().reference()
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
root?.observeSingleEvent(of: .value, with: {
(snapshot) in
// sneakers node might not exist
if snapshot.hasChild("sneakers/nike)"){
....
}
)}
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
root?.removeAllObservers()
}
Структура базы данных:
root
|
@-sneakers // this node might not exist
| |
| nike
|
@-users
| |
| uid
|
@-jackets...