Я использую облачную функцию для отправки уведомления на мобильное устройство. У меня есть две коллекции в Firestore clientDetail
и clientPersonalDetail
. У меня clientID
одинаково в обеих коллекциях, но дата хранится в clientDetail
, а имя хранится в clientPersonal.
Взгляните:
ClientDetail -- startDate
-- clientID
.......
ClientPersonalDetail -- name
-- clientID
.........
Вот мой полный код:
exports.sendDailyNotifications = functions.https.onRequest( (request, response) => {
var getApplicants = getApplicantList();
console.log('getApplicants', getApplicants);
cors(request, response, () => {
admin
.firestore()
.collection("clientDetails")
//.where("clientID", "==", "wOqkjYYz3t7qQzHJ1kgu")
.get()
.then(querySnapshot => {
const promises = [];
querySnapshot.forEach(doc => {
let clientObject = {};
clientObject.clientID = doc.data().clientID;
clientObject.monthlyInstallment = doc.data().monthlyInstallment;
promises.push(clientObject);
});
return Promise.all(promises);
}) //below code for notification
.then(results => {
response.send(results);
results.forEach(user => {
//sendNotification(user);
});
return "";
})
.catch(error => {
console.log(error);
response.status(500).send(error);
});
});
}
);
Выше функции показывает объект, подобный этому
{clienId:xxxxxxxxx, startDate:23/1/2019}
Но мне нужно, чтобы ClientID, а не имя отображалось в уведомлении, поэтому мне придется присоединиться к коллекции clientPersonal, чтобы получить имя с помощью clientID.
Что делать?
Как я могу создать другую функцию, которая исключительно возвращает имя, передавая clientID в качестве аргумента, и ждет, пока она не вернет имя.
Кто-нибудь, пожалуйста, помогите .?