Firebase令牌问题适用于更高版本的Lollipop和Marshmallow。

7 浏览
0 Comments

Firebase令牌问题适用于更高版本的Lollipop和Marshmallow。

我正在将Firebase集成到我的应用程序中,但问题是在Lollipop版本以下,我收到的令牌为空,不知道为什么。以下是我的代码。

清单文件:



    
    
        
            
        
    
    
        
            
        
    
    
    

MyFirebaseInstanceIDService类:

public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService {
    // 省略其他代码
    @Override
    public void onTokenRefresh() {
        String refreshedToken = FirebaseInstanceId.getInstance().getToken();
        Log.d(TAG, "Refreshed token: " + refreshedToken);
        // TODO: 将令牌发送到服务器
    }
    // 省略其他代码
}

MyFirebaseMessagingService类:

public class MyFirebaseMessagingService extends FirebaseMessagingService {
    // 省略其他代码
    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        // 省略其他代码
        sendNotification(remoteMessage.getNotification().getBody());
    }
    // 省略其他代码
}

从Fragment类中获取令牌:

String token = FirebaseInstanceId.getInstance().getToken();
Log.i("regToken", "FCM Registration Token: " + token);

0
0 Comments

Firebase Token Issue for the higher version Lollipop and Marshmallow

在使用Firebase Cloud Messaging(FCM)的时候,如果你的项目中同时使用了GCM和FCM的API,就会出现问题。因此,应该只使用FCM,而不使用GCM。另外,如果你想要在Manifest文件中实现自动注册,可以尝试以下代码:



    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
        
            
                
                
            
        
        
        
        
        
        
            
                
                
                
            
        
        
        
        
            
            
            
            
        
        
            
                
            
        
        
            
                
            
        
    

另外,不要在Activity中调用`getToken`方法,注册令牌将会自动被`onTokenRefresh()`接口方法检测到并处理。如果你需要将InstanceId存储在数据库、文件或者Shared Pref中,可以自行实现。

0