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

NativeScript-Vue集成Firebase推送如何获取移动端设备Token

适配修改方案

首先先修正你现有代码里的笔误:初始化回调中你误写的fpApp.auth应为入参fbApp,否则运行会报变量未定义错误。
获取Firebase推送Token的逻辑需要放在Firebase初始化完成的回调内执行,同时需要主动申请系统通知权限,否则高版本安卓、iOS系统不会返回推送Token。
修改后的完整app.js代码如下:

import Vue from 'nativescript-vue'
import Home from './components/Home'

new Vue({
  render: (h) => h('frame', [h(Home)]),
}).$start()

import { firebase } from '@nativescript/firebase-core'
import '@nativescript/firebase-auth'; // 仅需导入一次
import '@nativescript/firebase-storage';
import '@nativescript/firebase-messaging';

firebase().initializeApp().then(async fbApp => {
  console.log("Firebase app initialized!", fbApp.name) //[DEFAULT]
  console.log('12');
  console.log('fbApp : ', fbApp.auth);

  firebase().auth().addAuthStateChangeListener(async (user) => {
    if (!user) {
      console.log("firebase.auth done");
    } else {
      console.log("firebase.auth else done");
    }
  })

  // 推送相关逻辑
  const messaging = firebase().messaging()
  // 注册消息接收、Token刷新回调
  messaging.onMessage(async (message) => {
    console.log("[Firebase] 收到推送消息:", { message });
  })
  messaging.onToken(async (token) => {
    console.log("[Firebase] 获取到推送Token:", { token });
    // 此处可将token存储到本地,或上报给业务服务端用于定向推送
  })

  try {
    // 申请系统通知权限
    await messaging.requestPermission()
    // 注册远程推送服务
    await messaging.registerDeviceForRemoteMessages()
    // 主动获取一次当前Token,避免回调漏触发
    const currentToken = await messaging.getToken()
    console.log("[Firebase] 主动获取当前Token:", currentToken)
  } catch (err) {
    console.log("推送权限申请/注册失败:", err)
  }
})

注意事项

  • 你找到的参考代码是旧版插件API,新版@nativescript/firebase-messaging使用onMessage、onToken方法注册回调,不需要传入对象形式的配置
  • 必须先调用requestPermission申请通知权限,用户同意授权后才能正常获取Token
  • 安卓端要确认google-services.json配置正确,iOS端要确认GoogleService-Info.plist配置正确、已开启应用推送能力,否则无法正常获取Token
  • Token会在应用重装、用户清除应用数据、Token过期时自动刷新,onToken回调会在刷新时自动触发,不需要额外轮询

内容的提问来源于stack exchange,提问作者Seoho.An

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 23:51:30