Пытаетесь записать данные в мою базу данных Firebase Realtime, но в получении разрешения отказано? Не знаете, как я позволю всем аутентифицированным пользователям записывать данные?
Вот ошибка журнала в Xcode:
updateChildValues: at /fishers/iKjo9zp7lm2OzpcEuYu1 failed: permission_denied
2020-03-27 16:22:36.568797-0500 myApp[516:100] 4.13.0 - [Firebase/Database][I-RDB012] Listener at /hunters failed: permission_denied
2020-03-27 16:22:36.599645-0500 myApp[516:100] 4.13.0 - [Firebase/Database][I-RDB012] Listener at /fishers failed: permission_denied
Вот текущие правила.
{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}
КОД:
@objc func createFirebaseDBUser(uid: String, userData: Dictionary<String, Any>, isDriver: Bool) {
if isDriver {
REF_DRIVERS.child(uid).updateChildValues(userData)
} else {
REF_USERS.child(uid).updateChildValues(userData)
}
}
ОБНОВЛЕНИЕ :
Я добавил правильные правила, но все еще получаю ошибку записи.
Когда я ставлю точку останова, чтобы увидеть, что такое значение userData, я вижу «Firebase», а не реальное значение userData: см. Ниже.
КОД:
NSDictionary *userData = @{ @"provider": user.providerID};
Когда я ломаю точку на приведенной выше строке кода и указываю значение в консоли, я вижу следующее значение для userData
@provider:@Firebase
Я бы ожидал, что значение user.providerID будет реальным идентификатором значения Firebase, например, «skd8ddmd9dmdkYyydYGHl», а не буквально текстом «Firebase»
Не уверен, где будет собираться «Firebase»