Я пытаюсь получить данные из базы данных Firebase, но для защиты данных я должен дать API идентификатор пользователя, и он должен ответить с именем пользователя.
Вот мой формат базы данных:
users : {
"x0001": "John"
"x0002": "Samuel"
"x0003": "Rachel"
}
И вот ограничения, относящиеся к документации https://firebase.google.com/docs/database/security/securing-data
{
"rules": {
"users": {
".read": "query.equalTo != null",
".write": false
}
}
}
Вот метод доступа к моей базе данных
func isUserExists(userId: String) {
Database.database().reference().child("users")
.queryOrderedByKey()
.queryEqual(toValue: userId)
.observeSingleEvent(of: .value, with: { (snapshot) in
print(snapshot.value as? String)
}){ (error) in
print("error: \(error.localizedDescription)")
}
}
Когда я вызываю этот метод, например, с userId
isUserExists(userId: "x0001")
output
error : Permission Denied
Когда я тестирую без ограничений это работает хорошо, поэтому я думаю, что запрос хорошо написан, но он не соблюдает это ограничение
".read": "query.equalTo != null"
Спасибо