Замена всех URL-ссылок на файл при его замене другим файлом в Firebase - мобильные приложения Flutter - PullRequest
0 голосов
/ 11 июля 2020

Я создаю мобильное приложение с помощью Flutter и имею несколько коллекций в моей базе данных Firebase, например userData, posts, chats, et c.

Я ссылаюсь на профиль пользователя URL-адрес изображения (который хранится в Firebase Storage) также в коллекции posts. Если пользователь изменяет изображение своего профиля, URL-адрес обновляется напрямую только в коллекции userData. Есть ли простой способ обновить URL-адрес в коллекции posts (и всех других коллекциях, на которые ссылается URL-адрес) без, скажем, перебора всех сообщений и обновления URL-адреса везде, где он найден?

Заранее спасибо за помощь!

Ответы [ 2 ]

1 голос
/ 11 июля 2020

Один из способов сделать это - сохранить URL-адрес фотографии только в коллекции пользователей, как это делаете вы, затем в других коллекциях вы сохраняете идентификатор пользователя вместо URL-адреса его фотографии, наконец, на стороне клиента вы запрашиваете пользовательские данные на основе uid, таким образом вам нужно только сохранить и обновить URL-адрес фотографии в одной коллекции

1 голос
/ 11 июля 2020

без, скажем, перебора всех сообщений и обновления URL-адреса, где бы он ни находился?

Нет, это именно то, что вам нужно будет сделать, за исключением того, что вы не надо читать все документы. Просто запросите те, которые соответствуют тому, что вам нужно изменить. Firestore не имеет типа запроса «где обновить», который может обновлять несколько документов за одну операцию.

...