如何将firbase函数从(functions.https.onRequest)更改为(functions.https:



我已经完成了实现通知的firebase函数。

所以我试图更改函数类型,但失败了。。如何更改此代码?

exports.sendNotification = functions.https.onRequest((request,response)=>{
const id = request.body.user_id;
const pw = request.body.user_pw;
const yourToken = request.body.yourToken;
const myToken = request.body.myToken;
var payload = {
notification:{
title : "notify",
body : "suceess to send."
},
data:{
title : "notify",
body : "suceess to send.",
user_id : id,
user_pw : pw,
myToken : myToken,
yourToken : yourToken,
}
};

response.send(admin.messaging().sendToDevice(yourToken, payload));

});

从该代码到。。

exports.Notification = functions.https.onCall((data,context)=>{


});

这个。

如果我正确理解了你的问题,你需要首先了解onRequest()(类似HTTPS Express(和onCall()(可调用(Firebase函数之间的主要区别。

来自文件:

重要的是要记住HTTPS可调用函数与HTTP函数相似但不相同。可调用程序与HTTP函数有以下关键区别:

  • 通过可调用,Firebase身份验证和FCM令牌(如果可用(会自动包含在请求中
  • functions.https.onCall触发器自动反序列化请求主体并验证身份验证令牌

有关更详尽的解释,请参阅可调用云函数是否比HTTP函数更好?

这是一些未经测试的代码,您可以使用它来开始:

exports.sendToDevice = functions.https.onCall(async (data, context) => {

// Data passed from the client using the Callable
const id = data.user_id;
const pw = data.user_pw;
const yourToken = data.token;
const myToken = data.myToken;
var payload = {
notification:{
title : "notify",
body : "suceess to send."
},
data:{
title : "notify",
body : "suceess to send.",
user_id : id,
user_pw : pw,
myToken : myToken,
yourToken : yourToken,
}
};
return await admin.messaging().sendToDevice(yourToken, payload);
);

请注意,data可以包含消息文本,而context参数表示用户身份验证信息。

context包含有关请求的元数据,如uid和token,更多信息可在此处找到。

编辑:

定义payload的示例代码可以在这里找到。这里可以找到sendToDevice()方法。

相关内容

  • 没有找到相关文章

最新更新