У меня проблемы с получением данных в моем веб-приложении чата из Firebase. Я использую функции Firebase и машинописный текст.
Я сохранил некоторую информацию об отправителе и получателе в моем объекте чата, например:
chats: {
:chatId: {
users: {
userNames: ["senderName", "recipientName"]
userIds: ["senderId", "recipientId"]
}
}
}
Теперь я пытаюсь написать функцию который извлекает все чаты, в которых userId пользователя, сделавшего запрос, хранится в объекте userIds.
Мои функции машинописного текста выглядят так:
export const getUserChats=functions.https.onRequest((req:PR_UserRequest, res: Response) => {
let chatsData: DocumentData[] = [];
db.collection("chats").where("usersIds", "array-contains", `${req.user?.userId}`).get()
.then((chats) => {
chats.forEach((doc) => chatsData.push(doc.data()))
res.json(chatsData);
})
})
Результат:
[]
Я получаю коллекцию чатов и фильтрую ее с помощью метода where, но, похоже, не нашел массив userIds. Фактически эта функция возвращает пустой массив «чатов».
Ожидаемый результат:
{
users: {
userNames: ["senderName", "recipientName"]
userIds: ["senderId", "recipientId"]
}
...other data
}
Что мне делать, чтобы получить правильный результат?
Заранее спасибо.