Flatter Firebase Как сделать последовательный запрос - PullRequest
0 голосов
/ 25 января 2020

Я занимаюсь разработкой приложения на форуме. В моей базе данных Firebase есть две коллекции, связанные с пользовательской информацией и информацией о топиках c.

My Collections

В коллекции forumTopics я храню данные на каждом форуме topi c.

Topic Details

Когда я делаю запрос в Firebase, я хочу получить данные этой topi c с данными пользователя, соответствующими значению topicAuthorUID.

Например, я хочу извлечь имя, информацию об аватаре из документа пользователя, значение topicAuthorUID которого равно XXX в коллекции userData.

My userData details

Запрос, который я использую для получения тем:

Future getForumTopics() async { 
final result =
  await Firestore.instance.collection('forumTopics').getDocuments();
return result.documents;
}

Но с помощью этого запроса я не могу получить имя и аватар Владелец topi c.

В общем, я хочу напечатать информацию о субъекте, а также имя пользователя и информацию об аватаре.

Какой запрос мне нужно сделать, чтобы сделать это? Пожалуйста, помогите мне. Спасибо.

1 Ответ

0 голосов
/ 27 января 2020

Когда я делаю запрос Firebase, я хочу получить данные этой топи c вместе с данными пользователя, соответствующими значению topicAuthorUID.

Нет Как вы можете достичь этого за один go. Запросы в Firestore мелкие, они могут получить только элементы из коллекции, с которой выполняется запрос. Невозможно получить документы из двух коллекций в одном запросе, если вы не используете запрос группы коллекций , но это не тот случай, поскольку обе коллекции в вашем проекте имеют разные имена.

Например, я хочу извлечь имя, информацию об аватаре из документа пользователя, значение topicAuthorUID которого равно XXX в коллекции userData.

Таким образом, чтобы решить эту проблему, два отдельных запроса требуется. Первым было бы получить форум topi c. Когда у вас есть этот документ, основанный на свойстве topicAuthorUID, вы должны выполнить второй запрос, чтобы получить имя пользователя и аватар.

Какой запрос мне нужно сделать, чтобы сделать это?

На самом деле существует не один запрос, а два. И чтобы ответить на ваш вопрос:

Flutter Firebase Как сделать последовательный запрос

Невозможно сделать последовательный запрос так, как вы говорите. Требуются два запроса.

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