Я пишу в базу данных и пытаюсь ее прочитать, она всегда говорит: fail: license_denied при использовании пользовательских правил из Firebase.Я пытаюсь писать и читать из Firebase, чтобы написать имя и фамилию.Схема дерева ниже.Пользователь входит в систему на первой раскадровке, а чтение и запись находятся на разных раскадровках и контроллерах представления.
Нужно ли проходить аутентификацию на том же VC, где я пытаюсь получить информацию?
Я могу сгенерировать UserID на разных VC, поэтому я не знаю, что тогда может делать.
WRITE
ref?.child(userID).child("FirstName").setValue(firstName.text!)
READ
if let snap = snapshot.value as? [String : AnyObject] {
if let firstNameResult = snap["FirstName"] as? String {
self.firstNameLabel.text = firstNameResult
}else{
print("Error")
}
}else{
print("User ID is not valid")
}
FIREBASE RULES
{
"rules": {
"users": {
"$uid": {
".read": "$uid === auth.uid",
".write": "$uid === auth.uid"
}
}
}
}
TREE LAYOUT
IdentificationStorage
USERID generated
FirstName
LastName
- FIXДЛЯ ЧТЕНИЯ - Вот как работает чтение, запись работает только с кодом Кена, приведенным ниже!
let ref = Database.database().reference().child("users/\(userID)")
ref.observeSingleEvent(of: .value, with: { snapshot in
guard snapshot.exists() else { return print("Invalid User ID") }
self.firstNameLabel.text = snapshot.get("FirstName") as? String
guard snapshot.exists() else { return print("Invalid User ID") }
self.lastNameLabel.text = snapshot.get("LastName") as? String
})
}