我已将我的 Flutter-iOS 应用绑定到 Firebase,并且还使用 Firebase-Messaging 和 Cloud Functions 通过订阅主题发送通知。我正在使用苹果开发者帐户的 APNs 推送通知密钥。当我使用选项 runner>flutter run main.dart 在发布模式下构建我的应用程序时,在我的手机上,FCM 通知不再起作用,而在开发模式下它可以正常工作。有人可以帮我修复这个问题吗?
这是我的 index.json 代码:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
var newData;
exports.messageTrigger = functions.firestore.document('notifications/{notificationsId}').onCreate(async (snapshot, context) => {
newData = snapshot.data();
const payload = {
notification: {
title: newData.title,
body: newData.body,
sound: 'default'
},
data: {
click_action: 'FLUTTER_NOTIFICATION_CLICK',
message: newData.title,
}
};
if (newData.language === 'english'){
await admin.messaging().sendToTopic('english', payload);
}
else if (newData.language === 'arabic'){
await admin.messaging().sendToTopic('arabic', payload);
}
else if (newData.language === 'kurdish'){
await admin.messaging().sendToTopic('kurdish', payload);
}
});
因此,package.json:
{
"name": "functions",
"description": "Cloud Functions for Firebase",
"scripts": {
"lint": "eslint .",
"serve": "firebase emulators:start --only functions",
"shell": "firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"engines": {
"node": "10"
},
"dependencies": {
"firebase-admin": "^8.10.0",
"firebase-functions": "^3.6.1"
},
"devDependencies": {
"eslint": "^5.12.0",
"eslint-plugin-promise": "^4.0.1",
"firebase-functions-test": "^0.2.0"
},
"private": true
}