我使用Firebase在Android中实现了推送通知,并且我正在使用Firebase控制台接收推送通知。但是当我尝试通过发送设备令牌和服务器密钥连接到我的服务器时,我没有收到通知(来自我的服务器)。
我们的服务器端团队已经过测试,并且它正在工作,但我的设备没有收到推送通知(安装了应用的设备),而且我正在接收Firebase的推送通知。
如何连接服务器?是Android中的问题还是创建google-services.json文件?
答案 0 :(得分:1)
使用Firebase推送通知时,有两种情况可以处理数据有效负载(例如您的活动名称等)。
案例1:当您的应用程序在前台运行时(当前在屏幕上运行),您将从RemoteMessage object
方法中获取onMessageReceived(RemoteMessage remoteMessage)
的数据有效负载,该方法已在类中重写,必须扩展{{1} }。class。
例如:
FirebaseMessagingService
案例2:当您的应用在后台运行时,您会在应用的启动器public class FirebaseMessagingServiceHelper extends FirebaseMessagingService {
private final String TAG = "FirebaseMsgServiceHelper";
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
Map<String, String> dataPayload = null;
dataPayload = remoteMessage.getData();
}
}
中将数据有效负载作为附加内容获取。
例如: -
Activity
但当我在protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//get notification data info
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
//bundle must contain all info sent in "data" field of the notification
}
}
Activity
点击Notification Drawer
上的通知以及数据有效负载时点击click_action
的名称时,这两个案例无法正常工作data
。
但是当我把数据中的所有内容都放下来时,在i.e.
的情况下,无论app是在前台运行还是在后台运行,你的应用都会在RemoteMessage object
onMessageReceived(RemoteMessage remoteMessage)
中每次都收到数据有效负载。 1}}方法。
以下链接我从哪里得到了想法。 Firebase FCM notifications click_action payload