为什么semotemessage.getData()在firebase通知中返回null



我正在使用firebase中的通知作曲家使用自定义数据发送以下键值对:

 type : 555

我没有在通知作曲家中将双引号""放在type555周围。因此,在的地方,我正在编写type,而在 value 的位置上,我正在写555。以下是我检索此类型值的代码:

@Override
    public void onMessageReceived(final RemoteMessage remoteMessage) {

        final Map<String, String> data = remoteMessage.getData();
        final String type = data.get("type");
        Log.e("TAG","Type= "+type);
}

但是我要获得的日志输出是:

Type= null

我为什么要无效?我如何正确检索给定键的值?

编辑看来

final Map<String, String> data = remoteMessage.getData();

正常工作。我在此行之后放了一个Log.e()语句,并且正确打印了555。因此,即使存在键"类型",data.get("type")似乎也返回了null。为什么会发生?

我面临同样的问题。搜索后,我想到了下面的解决方案。

@Override
public void onMessageReceived(@NonNull RemoteMessage remoteMessage) {
    super.onMessageReceived(remoteMessage);
    
    RemoteMessage.Notification data = remoteMessage.getNotification();
    String title = data.getTitle();
    String body = data.getBody();
    
    if (data != null){
        // do some work
    }
    
}

我尝试过,对我有用。我希望这会帮助他人。

相关内容

  • 没有找到相关文章

最新更新