You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Kivy应用中通过Python获取Firebase注册令牌遇阻求助

Kivy应用获取FCM注册令牌的Python实现方案

FCM注册令牌由原生平台(Android/iOS)的Firebase SDK生成,纯Python包没有直接提供FirebaseMessaging.getToken()这类方法,你可以通过以下两种实用方案实现:

方案一:使用Plyer调用原生API

Plyer是Kivy生态中用于访问原生设备功能的库,其pushnotifications模块可直接获取FCM注册令牌,步骤如下:

  1. 安装Plyer
pip install plyer
  1. 在Kivy应用中调用获取令牌的代码
from plyer import pushnotifications

def fetch_fcm_token():
    try:
        # 调用原生API获取注册令牌
        fcm_token = pushnotifications.get_registration_id()
        if fcm_token:
            print("获取到FCM令牌:", fcm_token)
            # 可将令牌发送至服务器存储
            return fcm_token
        else:
            print("未获取到有效令牌")
            return None
    except Exception as err:
        print("令牌获取失败:", str(err))
        return None

# 在应用启动时执行获取操作
if __name__ == "__main__":
    fetch_fcm_token()
  1. Android端关键配置
  • 将Firebase控制台下载的google-services.json放在项目的android/app/src/main目录下
  • 修改buildozer.spec配置文件,添加以下内容:
    android.permissions = INTERNET, WAKE_LOCK, POST_NOTIFICATIONS
    android.add_google_services = True
    android.google_play_services_version = "20.1.0"
    

方案二:使用kivy-firebase库

若需要更深度的Firebase集成,可使用kivy-firebase库,它封装了原生Firebase SDK的常用功能:

  1. 安装库
pip install kivy-firebase
  1. 初始化并获取令牌
from kivyfirebase import Firebase

# 初始化Firebase,传入项目URL和google-services.json路径
firebase = Firebase("你的Firebase项目URL", "./google-services.json")
firebase.initialize()

# 获取注册令牌
fcm_token = firebase.get_token()
print("FCM令牌:", fcm_token)

注意:iOS平台的FCM令牌获取需额外配置苹果开发者账号和APNs证书,上述方案优先适配Android平台;若需iOS支持,需结合pyobjc调用原生FCM SDK的相关方法。

内容的提问来源于stack exchange,提问作者Lazza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 17:05:27