Есть ли способ получить PhotoUrl любого пользователя, используя только его Uid? - PullRequest
0 голосов
/ 24 мая 2018

У меня есть приложение, в котором есть много чатов, в каждом из которых отображаются изображения профиля пользователей.Для быстрой загрузки я храню эти URL-адреса под каждой комнатой в базе данных в реальном времени.Однако, если какой-либо пользователь обновит свою фотографию профиля, сохраненный URL-адрес, очевидно, будет бесполезным.Однако, если бы я мог получить текущий URL-адрес изображения для любого пользователя, используя только его UID, это больше не было бы проблемой.

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

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Вы можете использовать Firebase Admin SDK для поиска пользователей по uid:

admin.auth().getUser(uid)
  .then(function(userRecord) {
    console.log(userRecord.photoURL):
  })
  .catch(function(error) {
    // Error occurred.
  });
0 голосов
/ 24 мая 2018

Лучшим вариантом будет сохранение imageURL под вашим идентификатором пользователя

. Для этого просто измените ссылку, в которой вы храните фотографию

Например, получите идентификатор пользователя * 1005.*

FirebaseAuth mAuth;
mAuth = FirebaseAuth.getInstance();
uid = mAuth.getCurrentUser().getUid();

А затем в вашей ссылке, например,

mDatabase.child("users").child(uid).child("user_photo").setValue(your_download_url);

Помните, что URL-адрес загрузки фотографии получен из вашей ссылки на хранилище.

Поэтому, когда вам нужнополучить фотографию каждого пользователя, просто получить доступ к их ссылке и добавить прослушиватель события value, чтобы получить данные с помощью dataSnapshot, и использовать Glide, чтобы показать изображение

Edit

Thisможет работать, если вы входите в Google. Войдите в свое приложение, вы можете получить фотографию профиля пользователя, не сохраняя ничего в базу данных

Вы можете получить информацию для входа, не сохраняя ее в firebase (просто с помощью входа в Google) https://developers.google.com/identity/sign-in/android/people

, чтобы вы могли получить URL фотографии профиля и затем использовать Glide, чтобы показать ее

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