Я хочу опросить всех пользователей, с которыми дружит пользователь (user1), в одном запросе с firestore.
В настоящее время у меня есть поле "друзья" в каждом объекте пользователя, поэтому, чтобы получить друзей, которые являются друзьями с пользователем user1, я звоню:
friendsOfUser1 = db.collection ('users'). Where ('friends', 'array-contains', user1) .stream ().
Это хорошо работает, когда у пользователей всего <100 друзей, но после этого пользовательские объекты становятся очень большими, поскольку массив user.friends имеет много значений. Это делает получение пользовательских объектов дорогим. </p>
Есть ли способ сохранить массив друзей вне пользовательских документов, но при этом можно запросить друзей пользователя одним запросом? Вот какая сейчас структура:
user1:
{friends: ["user2", "user3", "user7", "user9"],
имя: "Джон Ски"}
user2:
{friends: ["user1", "user4", "user8", "user12"],
название: "Площадь Эльмо"}
user3:
{friends: ["user1", "user7", "user9"]}
so db.collection ('users'). Where ('friends', 'array-contains', user1) .stream () выдаст [user2, user3].