FCM 推送通知问题 Android
Issue with FCM Push Notification Android
几个月前我能够收到推送通知,一天前我又开始在应用程序上工作,现在问题是它无法收到推送通知。它确实提供了 FCM 令牌,但是如果我尝试使用 Postman,onMessageReceived 也永远不会被调用,它会给出 Mismatchsender ID 错误,但这里的场景有点令人困惑。如果我更改包名称(在控制台上创建新项目并添加新的 goole-service.json 文件之后),它不会让我注册 FCM 令牌。从昨天开始我就陷入了这种情况。有人可以帮忙吗?我做错了什么。
这是 FCMToken 的实现
[Service]
[IntentFilter(new[] { "com.google.firebase.INSTANCE_ID_EVENT" })]
public class MyFirebaseIIDService : FirebaseInstanceIdService
{
const string TAG = "MyFirebaseIIDService";
public override void OnTokenRefresh()
{
var refreshedToken = FirebaseInstanceId.Instance.Token;
Log.Debug(TAG, "Refreshed token: " + refreshedToken);
SendRegistrationToServer(refreshedToken);
}
void SendRegistrationToServer(string token)
{
// Add custom implementation, as needed.
}
}
如果我将我的包名称更改为任何其他名称,它会给我错误,
Error: Java.Lang.IllegalStateException: Default FirebaseApp is not
initialized in this process
try
{
var refreshedToken = FirebaseInstanceId.Instance.Token;
// PushNotificationManager.Initialize(this, false);
} catch(Exception ee)
{
}
我在 Firebase 上创建新项目后通过自定义 FirebaseInitialize 解决了我的问题,这里是我的代码。但是这里有一件坏事,当新令牌被初始化时,它永远不会在 FirebaseInstanceIdReceiver 上被调用。
var options = new FirebaseOptions.Builder()
.SetApplicationId("<AppID>")
.SetApiKey("<ApiKey>")
.SetDatabaseUrl("<DBURl>")
.SetStorageBucket("<StorageBucket>")
.SetGcmSenderId("<SenderID>").Build();
var fapp = FirebaseApp.InitializeApp(this, options);
几个月前我能够收到推送通知,一天前我又开始在应用程序上工作,现在问题是它无法收到推送通知。它确实提供了 FCM 令牌,但是如果我尝试使用 Postman,onMessageReceived 也永远不会被调用,它会给出 Mismatchsender ID 错误,但这里的场景有点令人困惑。如果我更改包名称(在控制台上创建新项目并添加新的 goole-service.json 文件之后),它不会让我注册 FCM 令牌。从昨天开始我就陷入了这种情况。有人可以帮忙吗?我做错了什么。
这是 FCMToken 的实现
[Service]
[IntentFilter(new[] { "com.google.firebase.INSTANCE_ID_EVENT" })]
public class MyFirebaseIIDService : FirebaseInstanceIdService
{
const string TAG = "MyFirebaseIIDService";
public override void OnTokenRefresh()
{
var refreshedToken = FirebaseInstanceId.Instance.Token;
Log.Debug(TAG, "Refreshed token: " + refreshedToken);
SendRegistrationToServer(refreshedToken);
}
void SendRegistrationToServer(string token)
{
// Add custom implementation, as needed.
}
}
如果我将我的包名称更改为任何其他名称,它会给我错误,
Error: Java.Lang.IllegalStateException: Default FirebaseApp is not initialized in this process
try
{
var refreshedToken = FirebaseInstanceId.Instance.Token;
// PushNotificationManager.Initialize(this, false);
} catch(Exception ee)
{
}
我在 Firebase 上创建新项目后通过自定义 FirebaseInitialize 解决了我的问题,这里是我的代码。但是这里有一件坏事,当新令牌被初始化时,它永远不会在 FirebaseInstanceIdReceiver 上被调用。
var options = new FirebaseOptions.Builder()
.SetApplicationId("<AppID>")
.SetApiKey("<ApiKey>")
.SetDatabaseUrl("<DBURl>")
.SetStorageBucket("<StorageBucket>")
.SetGcmSenderId("<SenderID>").Build();
var fapp = FirebaseApp.InitializeApp(this, options);