Firebase Auth: невозможно очистить photoURL? - PullRequest
0 голосов
/ 04 мая 2019

Кажется, что невозможно очистить поле, если оно уже задано в профиле пользователя? Например, мой вошедший в систему пользователь имеет набор photoURL, теперь я пытаюсь очистить его, установив для него значение nil.

let changeRequest = Auth.auth().currentUser?.createProfileChangeRequest()
changeRequest?.photoURL = nil
changeRequest?.commitChanges { [weak self] error in
  if let error = error {
    print(error)
    return
  }

  print("photo before reload: \(Auth.auth().currentUser!.photoURL)")

  Auth.auth().currentUser?.reload(completion: { _ in
    print("photo after reload: \(Auth.auth().currentUser!.photoURL)")
  })
}

Выход:

photo before reload: nil
photo after reload: Optional(https://github.com/kevinrenskers.png)

И действительно, при перезапуске приложения или даже выходе из системы и обратно, этот старый photoURL все еще там. Я не могу найти способ удалить свойство в профиле пользователя после его установки. Что мне здесь не хватает?

1 Ответ

0 голосов
/ 04 мая 2019

Когда вы звоните changeRequest.photoUrl = nil, вы изменяете значение только в этом случае currentUser, вы не изменяете его в Firebase.Поэтому, когда вы перезагружаете экземпляр, он читает неизменное значение photoUrl из Firebase при перезагрузке другого экземпляра currentUser.

Чтобы удалить photoUrl, сбросьте его в методе commitChanges currentUser

...