Firestore удалить документ и отправить уведомление с помощью облачной функции - PullRequest
0 голосов
/ 29 октября 2018

У меня возникли некоторые проблемы с моим скриптом node.js из моих облачных функций. Я довольно новичок в JavaScript и использую node.js. Мои облачные функции используются для моего приложения для Android, и я делаю https.onCall с прикрепленными к нему данными. Я хочу, чтобы мой сценарий использовал использованные данные, которые представляют собой UID для удаления документа из моей базы данных Firestore и в документе поле содержит массив UID пользователей, которые я хочу получить до удаления документа, чтобы я мог отправить уведомление каждому пользователю о его удалении. Вот мой код, он запускается в журналах, когда я тестирую его, но он не работает полностью.

exports.deleteSession = functions.https.onCall((data) => {
	const DB = admin.firestore();
	console.log("function Triggered");
	const UID = data.text;
	console.log(`got the text ${UID}`);
	const sessionOb = DB.collection('Sessions').doc(`${UID}`).get();
	console.log(`got session object ${sessionOb.data().tutorUID}`);

	var students = [];
	var TUID = sessionOb.data().tutorUID;
	students = sessionOb.data().students;

	var array_uid = [];

	for(var key in students){
		array_uid.push(key);
	}

	var tokens = [];

	for(var id in array_uid){
		var userOB = DB.collection('Users').doc(`${id}`).get();
		tokens.push(userOB.data().tokenID);
	}

	console.log("functions in middle");

	var tutorOB = DB.collection('Users').doc(`${TUID}`).get();

	var tutorName = tutorOB.data().name;
	var profile = tutorOB.data().profileImage;

	const payload = {
			notification: {
				title: `${tutorName} has canceled their Session`,
				body: `${session.subject} tutoring is Canceled`,
				icon: profile
			}
		};

	var deleteDoc = DB.collection('Sessions').doc(`${UID}`).delete();
	console.log("document deleted");

	return admin.messaging().sendToDevice(tokens, payload).then(function(response) {
								console.log("Successfully sent message:", response);
							  })
							  .catch(function(error) {
								console.log("Error sending message:", error);
							  });

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