如何获取 FCM-Django 推送通知的 registration_id (flutter app)

Posted

技术标签:

【中文标题】如何获取 FCM-Django 推送通知的 registration_id (flutter app)【英文标题】:how to obtain the registration_id for FCM-Django push notifications (flutter app) 【发布时间】:2022-01-13 02:42:40 【问题描述】:

我使用 django 作为我的颤振应用程序的后端。并且只是想学习如何实现推送通知。

有没有办法让设备的 registration_id 发送推送通知而不将 firebase_messaging/firebase_core 包添加到我的颤振包中?我觉得让这些包只注册设备令牌是多余的。或者这是唯一的方法^

我正在使用 FCM-django 包发送通知,但需要在我的数据库中为每个用户保存设备的 registration_id。

【问题讨论】:

你好@Karan,我面临着完全相同的问题。你解决了吗? 嘿,是的,我做到了。所以你必须添加 firebase_messaging 和 firebase_core 包。这是最简单的方法。然后,您必须在 firebase 上注册您的应用程序,因为本质上您正在使用他们的推送通知服务。这部分要求您遵循他们的说明(android vs ios),您必须将一个文件添加到他们为您生成的应用程序中。您还必须设置后端。我遇到了一个问题,我的 django 后端无法识别他们让您添加为系统变量的文件。因此,请务必在完成后重新启动计算机。 我做了一切,但我不确定如何在 django 后端发送 fcm 模型的注册 ID?还是留给前端开发人员,我不必从后端做任何事情?? 我只设置前端。这样您就可以轻松看到弹出的通知!我认为这是最好的方法。 Firebase 消息传递,firebase 核心,获取所需的包,在 flutter 上初始化包。并获取该注册Id 将该Id发送到后端以保存与用户关联的FCM设备。然后,您将能够发送推送通知。如果您有任何具体问题,请告诉我。 所以我对此也超级陌生。但是firebase消息是完全免费的。我觉得总有一些隐藏费用,所以我没有完全调查。但它现在似乎是免费的。我觉得任何事情都可以改变 【参考方案1】:

在 Flutter 中获取设备令牌

    final FirebaseMessaging _fcm = FirebaseMessaging.instance;
    @override
    void initState() 
    // TODO: implement initState
    super.initState();
    _fcm.getToken().then((value) 
       print("Device Token $value");
    );
    

将此设备令牌存储到数据库中并将其用于推送通知。

【讨论】:

以上是关于如何获取 FCM-Django 推送通知的 registration_id (flutter app)的主要内容,如果未能解决你的问题,请参考以下文章

如何从 WatchOs 中的推送通知中获取数据并处理推送通知操作按钮单击事件

用于 asp.net 的 GCM 推送通知服务器端

如何在iphone中获取推送通知[重复]

如何在日志中获取推送通知收到消息

如何使用 quickblox 实时获取推送通知

使用推送通知时如何获取用户设备令牌