【发布时间】:2020-10-22 14:10:55
【问题描述】:
我的问题是关于使用 Flutter 和 firebase_messaging 插件的推送通知
问题:
我已将 firebase_messaging 插件集成到我的颤振应用程序中以进行推送通知。 当我收到推送通知时,我可以保证设置是正确的。仅当我的应用程序在后台运行(例如最小化但在系统内存中可用)时才收到推送时出现问题。 当应用处于前台或被杀死时,没有收到推送。
为了提供我尝试过的解决方案,我无法弄清楚实际上需要做些什么。
我遵循了这方面的教程并应用了每一个步骤来解决问题,但无济于事。
我正在使用 nodeJS 来处理 firebase-admin 和 serviceaccountkey 文件,因为我需要来自我的数据库的 device_tokens。
NodeJS
const firebase = require('firebase-admin');
const serviceAccount = require('../controller/firebase/serviceAccountKey.json');
firebase.initializeApp({
credential: firebase.credential.cert(serviceAccount)
});
//Function to actually implement the push
const pushNotificationInitiatorSubscription = (resultValue) => {
let devicesTokenString = resultValue[0]['device_token'];
const firebaseToken = devicesTokenString;
const payLoad = {
notification: {
title: 'New Subscription',
body: 'You have a new subscription to your material ' + resultValue[0]['course_name']
}
};
const option = {
priority: 'high'
};
firebase.messaging().sendToDevice(firebaseToken, payLoad, option).then(success => {
// console.log(success.results[0]['error']);
// console.log(success.results[1]['error']);
// console.log(success);
}).catch(err => {
console.log(err);
})
颤动
import 'package:firebase_messaging/firebase_messaging.dart';
class FirebaseCloudMessage {
static FirebaseCloudMessage _instance = new FirebaseCloudMessage.internal();
FirebaseCloudMessage.internal();
factory FirebaseCloudMessage() => _instance;
final FirebaseMessaging _firebaseMessaging = new FirebaseMessaging();
configureFirebaseListeners() {
print('Here');
_firebaseMessaging.configure(
onMessage: (Map<String, dynamic> message) async {
print("Message $message");
// return message;
}, onLaunch: (Map<String, dynamic> message) async {
print("Message $message");
// return message;
}, onResume: (Map<String, dynamic> message) async {
print("Message $message");
// return message;
});
}
}
我们将不胜感激。谢谢
【问题讨论】:
标签: node.js flutter push-notification firebase-cloud-messaging