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

能否通过Firebase控制台为FCM主题添加/导入注册ID并分组?

关于FCM主题批量导入注册ID的问题

Firebase控制台不支持直接导入注册ID列表来批量添加到FCM主题,得通过代码实现这个需求,下面是几种可行的方案:

  • 使用Firebase Admin SDK
    这是最常用的方式,你可以写个简单脚本读取CSV里的注册ID,调用SDK的subscribeToTopic方法批量订阅。比如用Node.js的话,先读取CSV文件(可以用csv-parser这类库),然后把注册ID分成最多1000个一组(FCM批量订阅的上限),循环调用订阅接口。示例代码大概是这样:

    const admin = require('firebase-admin');
    const csv = require('csv-parser');
    const fs = require('fs');
    
    admin.initializeApp({
      credential: admin.credential.applicationDefault()
    });
    
    const registrationTokens = [];
    fs.createReadStream('user-details.csv')
      .pipe(csv())
      .on('data', (row) => {
        // 假设CSV里的注册ID列名为"registration_id"
        registrationTokens.push(row.registration_id);
      })
      .on('end', async () => {
        // 拆分批量,每组最多1000个
        const batchSize = 1000;
        for (let i = 0; i < registrationTokens.length; i += batchSize) {
          const batch = registrationTokens.slice(i, i + batchSize);
          try {
            const response = await admin.messaging().subscribeToTopic(batch, '你的主题名称');
            console.log(`成功订阅 ${response.successCount} 个设备`);
          } catch (error) {
            console.error('订阅失败:', error);
          }
        }
      });
    
  • 使用FCM HTTP v1 API
    如果不想用Admin SDK,也可以直接调用FCM的HTTP API。需要先通过服务账号获取OAuth2令牌,然后发送POST请求到FCM的主题订阅接口,请求体里指定主题和注册ID列表,同样要注意每组不超过1000个ID。

  • 自动化流程(结合Cloud Functions)
    你可以把CSV上传到Firebase Storage,然后用Cloud Functions触发自动处理:当Storage检测到新的CSV文件时,自动读取文件内容,批量订阅注册ID到目标主题。这种方式适合需要重复操作的场景。

另外要注意:

  • 确保CSV里的注册ID是有效的,无效ID会被FCM返回错误,需要在代码里做错误处理
  • 主题名称要符合FCM的规则(只能包含字母、数字、连字符、下划线、点号和斜杠)
  • 批量操作时不要超过FCM的配额限制,避免被限流

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 16:40:31