【发布时间】:2020-12-26 03:50:22
【问题描述】:
我已将我的 Flutter-iOS 应用程序绑定到 firebase,并且我还使用 firebase-messaging 和云功能通过订阅主题来发送通知,我正在使用苹果开发者帐户的 APNs 推送通知密钥。当我使用选项 runner>flutter 在发布模式下运行 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
}
【问题讨论】:
-
确保您创建的推送通知认证支持生产。
-
你好,谢谢,我还没有在appstore上发布,只是在我的手机上发布了它,那也需要证书吗?
-
我没有使用推送通知证书,我正在使用 APNS 密钥
-
请发给我firebase云消息设置页面截图。您在哪里添加了 apn
-
如何发送?我已将 apns 密钥正确上传到 firebase,它在 android 调试和发布以及 ios 调试上运行良好,唯一的问题是 ios 发布模式
标签: flutter dart firebase-cloud-messaging release