Обновление фото профиля пользователя не обновляет его с помощью currentUser.photoUrl - PullRequest
1 голос
/ 29 марта 2020

У меня есть фотография, затем я обновляю свою текущую фотографию пользователя, чтобы применить это изменение к аутентифицированному пользователю Firebase.

Что я вижу после обновления этой фотографии для аутентифицированного пользователя, чтобы получить photoUrl как строка, как при первом входе в мое приложение

suspend fun updatePhoto(uri: Uri): Resource<Unit>{
        val currentUser = FirebaseAuth.getInstance().currentUser
        val profileUpdates = UserProfileChangeRequest.Builder().setPhotoUri(uri).build()
        currentUser!!.updateProfile(profileUpdates).await()
        currentUser.reload().await()
        val userData = hashMapOf<String,Any>()
        userData["photoUrl"] = currentUser.photoUrl.toString()
        FirebaseFirestore
            .getInstance()
            .collection("user")
            .document(currentUser.uid).set(userData, SetOptions.merge()).await()
        return Resource.Success(Unit)
    }

В этой строке userData["photoUrl"] = currentUser.photoUrl.toString() Я ожидаю, что фактический photoUrl обновляется в firebase, и я получаю локальный Uri, такой как file://my.com.app/cache/photo.jpg

Если я обновил фотографию пользователя из самой аутентификации, не обрабатывает ли firebase обновленную фотографию и должен вернуть мне фактическую фотографию, обновленную этим текущим пользователем?

Я хочу не использовать хранилище firebase для загрузки фото и поместите его в свою базу данных, вместо этого я хочу получить его непосредственно из обновленной фотографии пользователя

1 Ответ

2 голосов
/ 29 марта 2020

Когда вы устанавливаете URL фото пользователя Firebase Auth, он не извлекает содержимое этого изображения и не сохраняет его. Вы, вероятно, передали URL этого файла из другой части вашего приложения, и теперь он возвращает вам ту же строку, как и ожидалось.

Я не думаю, что есть способ избежать загрузки этого изображения в службу, которая может разместить его для вас, как Cloud Storage.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...