Разрешение Firebase отказано при письме к рыбакам - PullRequest
0 голосов
/ 28 марта 2020

Пытаетесь записать данные в мою базу данных 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»

...