存储 FCM 令牌

Storing FCM token

我有一个 Android 应用程序可以接收推送通知。我想知道是否有更直接的方法在外部数据库上存储 FCM 令牌和用户 ID,因为现在我正在编写自己的 FirebaseInstanceIdService. sendRegistrationToServer 方法。像这样

public class TokenRegistrationService extends FirebaseInstanceIdService {

    @Override
    public void onTokenRefresh() {
        // My custom manager
    }

    private void sendRegistrationToServer(final String FCMToken) {
        // Here I can send FCMToken to my db
    }
}

我还有其他方法可以获取令牌并发送吗?

Is there any other way for me to get the token and send it?

为了生成注册令牌,我很确定除了使用 FirebaseInstanceID 服务之外别无他法。

当向您的服务器发送令牌时..我不确定这里的问题是什么。生成令牌后直接将令牌发送到您的应用服务器还不够直接吗?或者我错过了什么?请详细说明。

我假设您指的是比扩展 FirebaseInstanceIdService 更直接的方法。如果是这样,那么您应该注意,无论您是否扩展此 class.

,都会生成令牌

要检索令牌,您只需获取 InstanceID 的实例并调用 getToken

String token = InstanceID.getInstance().getToken();

另请注意,如果您没有在 FirebaseInstanceIdService onTokenRefresh 回调中请求令牌,getToken 将 return null if 令牌检索过程尚未完成,将在检索到令牌后 return 令牌。

令牌检索会在您的应用程序启动后立即进行,因此如果您一开始就不需要令牌 运行,调用 getToken 可能就足够了。如果您在令牌或更新版本可用时立即需要它们,那么您需要扩展 FirebaseInstanceIdService 并覆盖 onTokenRefresh