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

React Native Firebase:FCM旧版API迁HTTP v1的token获取疑问

FCM HTTP v1 API迁移相关问题解答

背景与问题

我正在应用中使用Firebase Cloud Messaging(FCM)实现推送通知,目前通过react-native-firebase库获取FCM token,代码如下:

const getToken = async () => {
  try {
    const token = await firebase.messaging().getToken();
    if (token) return token;
  } catch (error) {
    console.log(error);
  }
};

获取到token后我会将其发送至自有API,以便确定推送通知的接收用户。但FCM旧版HTTP及XMPP API即将停用:

FCM legacy APIs for HTTP and XMPP should migrate to the HTTP v1 API at the earliest opportunity. Sending messages (including upstream messages) with those APIs was deprecated on June 20, 2023, and will be removed in June 2024.

我有以下疑问:

  • 现在访问令牌的生成方式是否有变化?
  • 是否需要使用Firebase账号提供的JSON格式私钥文件?
  • await firebase.messaging().getToken();是否无需额外操作就能为HTTP v1获取正确的token?

解答

1. 访问令牌生成方式的变化

旧版Legacy API直接用服务器密钥(Server Key)作为鉴权凭证调用接口,但HTTP v1 API必须使用OAuth2访问令牌完成鉴权。生成这个令牌需要借助Firebase服务账号的私钥,向Google令牌服务发起请求,令牌有效期为1小时,需要定期刷新。

2. 是否需要JSON私钥文件

是的,必须使用。你得在Firebase控制台的「项目设置」→「服务账号」页面生成并下载JSON格式的私钥文件,后续生成OAuth2访问令牌时,要用到文件里的client_email、private_key等核心信息。

3. 客户端获取Token的代码是否需要修改

不需要。通过firebase.messaging().getToken()获取的FCM注册令牌(Registration Token)和旧版API用的完全一致,HTTP v1 API发送推送时,依然靠这个令牌指定接收用户,所以你现有的客户端代码不用改,继续按原逻辑获取并上传Token就行。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 21:42:14