我刚刚接触到Firebase函数,最初一切正常,但现在我面临以下错误。我在下面提供错误和我的代码。
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
// // Create and Deploy Your First Cloud Functions
// // https://firebase.google.com/docs/functions/write-firebase-functions
//
exports.sendNotification = functions.database.ref('/Notification/{user_id}/{notification_id}').onWrite(event =>{
const user_id = event.params.user_id;
const Notification = event.params.Notification;
console.log('We have a Notification to send to :', user_id);
if (!event.data.val()) {
return console.console.log('A Notify has been deleted from the database :', notification_id);
}
const devicetoken = admin.database().ref(`/Users/{user_id}/device_token`).once('value');
return devicetoken.then(result =>{
const token_id = result.val();
const payload = {
notification: {
title : "Follower Request",
body: "You've received a new friend request",
icon: "default"
}
};
return admin.messaging().sendToDevice(token_id, payload).then(response =>{
console.log('This was the notification Feature')
});
});
});
下面是我在Firebase函数中收到的错误。
错误:提供给sendToDevice()的注册令牌必须是非空字符串或非空数组。在FirebaseMessagingeror。FirebaseMessagingError出现错误(本机)。FirebaseError[作为构造函数](/user_code/node_modules/firebase admin/lib/utils/error.js:39:28)位于FirebaseMessagingeror。在新的FirebaseMessagingError(/user_code/node_modules/firebase admin/lib/utils/error.js:85:28)的消息传递中,使用prefixedFrebeSeError[作为构造函数](/user_code/node_modules/firebase admin/lib/utils/error.js:207:16)。在消息传递中验证注册KenStype(/user_code/node_modules/firebase admin/lib/messaging/messaging.js:589:19)。在devicetoken上发送设备(/user_code/node_modules/firebase admin/lib/messaging/messaging.js:210:14)。然后进程中的结果(/user_code/index.js:36:30)_tickDomainCallback(内部/process/next_tick.js:135:7)
上述错误的firebase函数图像
图片提供了我如何存储设备\u令牌\u id的想法
任何帮助都将不胜感激。
您没有在某些地方使用模板标签${}
还要确保您要发送通知的用户在Firebase中存储了有效的device_token
。
实施这些更改和更新方法后的最终代码是:
'use strict'
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.sendNotification = functions.database.ref('/notifications/{user_id}/{notification_id}').onWrite((change, context) => {
const user_id = context.params.user_id;
const notification_id = context.params.notification_id;
console.log('We have a notification to send to : ', context.params.user_id);
if(!change.after.val()) {
return console.log('A Notification has been deleted from the database : ' + context.params.notification_id);
}
const deviceToken = admin.database().ref(`/Users/${user_id}/device_token`).once('value');
return deviceToken.then(result => {
const token_id = result.val();
const payload = {
notification: {
title : "Follower Request",
body: "You've received a new friend request",
icon: "default"
}
};
return admin.messaging().sendToDevice(token_id, payload).then(response => {
return console.log('This was the notification Feature');
});
});
});
对于所有提到TVAC Studio的Lapit聊天应用程序教程的人,我提到了上述更改的答案https://stackoverflow.com/a/49746976/7549743
我成功地集成了firebase。当我仅出于测试目的使用firebase站点的云消息发送通知时,设备会收到通知。但在我的应用程序中,我需要使用firebase从一台设备向另一台设备发送通知。。如何实现这一点。Swift 4,Xcode 10以下是一些代码:
我对FireBase云消息有一个问题,我从设备中获取令牌,并通过Google FireBase通知控制台发送通知测试。但是,通知从来没有被记录,也没有被推送到android虚拟设备。FCM的文档几乎与下面的代码完全相同,其他代码很少,您还需要做什么来获得使用FireBase的推送通知。我已经完成了所有的设置信息(build.gradle添加、安装google play服务等)如文档中所指定的,但仍
我试图弄清楚Firebase如何连接到特定设备并向其发送消息。我现在如何使用Firebase和从我的后端服务器向注册的设备发送通知,但我不知道它是如何在内部工作的。firebase服务器是否使用设备和服务器之间的持久连接?它用的是什么技术? 目前,我最感兴趣的是Android设备,以及firebase如何唤醒设备,即使有后台任务限制。
我在项目中使用Firebase身份验证。今天我决定将FCM集成到我的项目中。但是我无法从我的Firebase控制台收到任何通知。我还尝试重新下载. json文件,但没有成功。你们知道我的问题吗? Android清单.xml FirebaseMessageService.java FirebaseIDService.java 我认为这个问题不是由我的MainActiviy.java决定的,但以防万一
我关掉了又打开了我手机的Wifi,然后手机就收到了那些通知。我在模拟器上打开和关闭平面模式,然后模拟器收到这些通知。我的应用程序有问题吗?还是用火力点?(我已经使用权限)。有什么建议吗? 谢谢!
我已经更新到Xcode 12.3 beta。设备版本是14.2,但Xcode抱怨: 准备设备进行开发时遇到错误。请检查“设备和模拟器”窗口。 无法为开发准备设备 iPhone直接连接到MacBook。我在网上尝试了所有的胡言乱语。但是没有成功,你知道吗? 无法为开发准备设备 请检查到设备的连接,并检查设备和模拟器窗口中的所有错误。