我正在使用firebase中的通知编辑器使用自定义数据发送以下键值对:
type : 555
我不会在通知编辑器中的""
和type
附近放置双引号555
。所以在键的地方,我正在写type
,而在值的地方,我正在写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.所以即使键“type”存在,data.get("type")
也会返回null。为什么会这样?
答案 0 :(得分:0)
我遇到了同样的问题。经过一番搜索,我想出了以下解决方案。
# config/initializers/omniauth.rb
require Rails.root.join("lib/rescue_auth_token_from_omniauth")
Rails.application.config.middleware.use OmniAuth::Builder do
provider :google_oauth2, ENV['GOOGLE_CLIENT_ID'], ENV['GOOGLE_CLIENT_SECRET']
end
Rails.application.config.middleware.insert_before(OmniAuth::Builder, RescueAuthTokenFromOmniauth)
我试过了,它对我有用。我希望它能帮助其他人。