Использование облачных функций Firebase Я бы хотел найти документы, которые содержат определенный другой документ, в массиве ссылок на документы. Моя структура выглядит следующим образом:
Users
name
email
cars
ref to cars/car1 for example
ref to cars/car2 for example
Cars
registration
make
model
Есть несколько пользователей и несколько автомобилей. Мне нужно искать пользователей, у которых есть определенный «автомобиль» в их массиве автомобилей.
Я пытаюсь написать это в облачной функции и получить следующее:
admin.firestore()
.collection('users')
.where('cars', 'array-contains', registration)
.get().then(doc => {
console.log("TESTING: found the user " + doc.data().email)
return
}).catch(error => {
console.error(error);
});
Я знаю, что в настоящее время просто выполняется поиск регистрационной строки в массиве. Есть ли в любом случае для поиска конкретную c ссылку на документ. Я использую Node.js.
Рабочий код для получения всех документов, имеющих ссылку на документ в массиве;
// Notify the owner of the car
admin.firestore()
.collection('users')
.where('cars', 'array-contains', carRef)
.get().then(snapshot => {
snapshot.forEach(doc => {
console.log("TESTING found the user " + doc.data().email);
const message = {
notification: {
body: 'Your vehicle (' + carReg + ') recieved a report. Tap here to see!',
},
token: doc.data().cloudMessagingToken
};
sendMessage(message);
});
return
}).catch(error => {
console.error("Error finding a user that has the car in their garage");
console.error(error);
});