如何在fcm-django的FCMDevice上注册设备?

JRR*_*JRR 5 python django firebase firebase-cloud-messaging pyfcm

我是 Django 的初学者。

参考这个链接,我安装了fcm-django并完成了设置。 fcm-django 文档

  • 安装fcm-djagno
pip install fcm-django
Run Code Online (Sandbox Code Playgroud)
  • 设置fcm-djangosettings.py.
pip install fcm-django
Run Code Online (Sandbox Code Playgroud)

而且,当我发布通知时,如果推送处于活动状态,我会尝试向所有设备发送推送通知。

import firebase_admin
from firebase_admin import credentials

cred_path = os.path.join(BASE_DIR, "serviceAccountKey.json")
cred = credentials.Certificate(cred_path)
firebase_admin.initialize_app(cred)

...

INSTALLED_APPS = [
    ...
    'fcm_django',
]

...

FCM_DJANGO_SETTINGS = {
    # default: _('FCM Django')
    "APP_VERBOSE_NAME": "django_fcm",
    # Your firebase API KEY
    "FCM_SERVER_KEY": "AAAAsM1f8bU:APA91bELsdJ8WaSy...",
    # true if you want to have only one active device per registered user at a time
    # default: False
    "ONE_DEVICE_PER_USER": False,
    # devices to which notifications cannot be sent,
    # are deleted upon receiving error response from FCM
    # default: False
    "DELETE_INACTIVE_DEVICES": True,
}
Run Code Online (Sandbox Code Playgroud)

我很好奇的是,当用户安装此应用程序时,数据是否会自动添加到 FCMDevice 模型中。

如果我必须手动生成数据,我想知道如何获取 FCM 注册令牌以及如何实现向 FCMDevice 模型添加数据。

Har*_*lAV 3

我有一段时间遇到同样的问题并找到了解决此问题的方法。在 django-fcm 的所有配置之后,当用户登录/注册时,创建 FCMDevice 的设备实例并将用户保存到该实例。

参考pyrebase创建registration_id(token)

在视图中从 fcm_django.models 导入 FCMDevice

fcm_device = FCMDevice()
fcm_device.registration_id = registration_id
fcm_device.user = user
fcm_device.save()
Run Code Online (Sandbox Code Playgroud)

更多参考