不初始化名为的变量
option
,您正在将其作为请求的参数传递。这就是为什么你会犯错误
ReferenceError: options is not defined
. 我在这里评论了未使用的部分。立即签出此代码段
'use-strict'
const functions = require('firebase-functions');
const admin = require('firebase-admin');
var request = require('request');
admin.initializeApp();
var headers = {
'Authorization': 'key = my service account key here',
'project_id': 'server_id',
'Content-Type': 'application/json'
}
/* Code which causes error
request(options, function (error, response, body) {
console.log(body)
})*/
exports.sendNotification = functions.firestore.document("Users/ {user_id}/Notifications/{notification_id}").onWrite((change,context) => {
const user_id = context.params.user_id;
const notification_id = context.params.notification_id;
return admin.firestore().collection("Users").doc(user_id).collection("Notifications").doc(notification_id).get().then(queryResult => {
const from_user_id = queryResult.data().from;
const from_message = queryResult.data().message;
const from_data = admin.firestore().collection("Users").doc(from_user_id).get();
const to_data = admin.firestore().collection("Users").doc(user_id).get();
return Promise.all([from_data, to_data]).then(result => {
const from_name = result[0].data().name;
const to_name = result[1].data().name;
const token_id = result[1].data().token_id;
var options = {
url: 'https://android.googleapis.com/gcm/notification',
method: 'POST',
headers: headers,
json: {'operation': 'create',
'notification_key_name': 'you@example.com',
'registration_ids': [token_id]}
}
request(options, function (error, response, body) {
console.log(body)
})
var notificationKey = body;
const payload = {
notification: {
title: "Notification From: " + from_name,
body : from_message,
icon : "notification.png",
sound: "orion.mp3"
}
};
return admin.messaging().sendToDeviceGroup(notificationKey,payload).then(result => {
var c = console.log("Notification sent ");
return c;
});
});
});
});