首页 文章

如何从Firebase获取所有设备令牌?

提问于
浏览
4

如何从Firebase获取设备令牌(FCM注册令牌)?

我正在使用firebase及其服务器使用node.js制作移动应用程序 .

我想从服务器发送 push notification 消息,但我不知道如何获取设备令牌 .

  • 如何从外部服务器获取设备令牌?我现在正在使用Firebase管理员SDK .

  • 设备令牌仅在应用程序连接到fcm服务器时生成吗?

  • 当用户首次运行应用程序并注册FCM服务器时,我应该将令牌保存到另一个数据库吗?

2 回答

  • 4

    1.如何从外部服务器获取设备令牌?我现在正在使用Firebase管理员SDK .

    目前没有API可以从服务器端检索您应用的所有注册令牌 . 开发人员(您)有责任将注册令牌发送并存储到您的App Server,该App Server是从客户端应用程序端生成的 .

    2.是否仅在应用程序连接FCM服务器时生成设备令牌?

    documentation几乎涵盖了这一点(另请参阅我的回答here):

    在应用程序首次启动时,FCM SDK会为客户端应用程序实例生成注册令牌 .

    从技术上讲,它不会连接到FCM服务器 . 它连接到FirebaseInstanceID服务(通过SDK),后者又生成注册令牌 .

    3.当用户首次运行应用程序并注册FCM服务器时,我应该将令牌保存到另一个数据库吗?

    正如我在#1中提到的,您应该将其保存在可以轻松访问它以发送消息的位置 .

  • 3

    应用程序首次连接时会生成设备令牌,然后必须将此令牌存储在您的数据库中,并在分配新令牌时替换该令牌

    public class MyAndroidFirebaseInstanceIdService extends FirebaseInstanceIdService {
    
        private static final String TAG = "MyAndroidFCMIIDService";
    
        @Override
        public void onTokenRefresh() {
            //Get hold of the registration token
            String refreshedToken = FirebaseInstanceId.getInstance().getToken();
            //Log the token
            Log.d(TAG, "Refreshed token: " + refreshedToken);
        }
        private void sendRegistrationToServer(String token) {
            //Implement this method if you want to store the token on your server
        }
    }
    

    请参阅以下Tutorial

相关问题