Flutter:如何从设备本身发送推送通知



我是编程新手,我正在开发一个应用程序,假设用户在应用程序上安排的事件发生前30分钟收到通知。时间表保存在firebase数据库中,设备每30分钟检查一次,看看是否到了发送警报的时间。如果该条件成立,我希望设备发送通知,以便提醒用户该事件。我看到的每一个教程都只展示了如何通过firebase本身发送通知。他们都没有介绍如何从设备发送。

我发现了这个代码:

final postUrl = Uri.parse('https://fcm.googleapis.com/fcm/send');
final data = {
"registration_ids": tokens, //list of tokens
"collapse_key": "type_a",
"notification": {
"title": 'title',
"body": 'body',
},
"data": {
"data1": 'data 1', //data passed
}
};
final Map<String, String> headers = {
'content-type': 'application/json',
'Authorization': serverKey, //..................FCM server key
};
final response = await http.post(postUrl,
body: json.encode(data),
encoding: Encoding.getByName('utf-8'),
headers: headers);
if (response.statusCode == 200) {
print('test ok push CFM');
return true;
} else {
print(' CFM error');
print(response.statusCode);
return false;
}
}

但是,自从您的服务器密钥被公开以来,这种做法不是很糟糕吗?有没有更好、更安全的方法可以使用扑动来做到这一点??

我认为每30分钟从设备上检查一次firebase数据库不是一个好决定。

您可以使用/编写firebase cloud function。使用firebase云函数,您可以查看任何文档/字段,并尝试编写通知触发逻辑,例如如果事件发生在30分钟之前,则此云函数将通过firebase messaging抛出通知。

请参阅https://firebase.flutter.dev/docs/functions/overview/了解更多信息。

相关内容

  • 没有找到相关文章

最新更新