如何在Java Firestore聊天应用程序中发送Multible FCM推送通知

时间:2019-12-13 20:12:29

标签: java push-notification google-cloud-firestore firebase-cloud-messaging chat

现在我已成功一对一发送FCM推送通知

问题是:

  

我无法从一个用户变成多个用户<==

就像群聊中的一个成员发送一条消息一样,因此我需要根据消息内容为该组中的每个成员发送一条通知。

我当前的代码:

private void sendNotification(String receiver, final String username, String senderImage, final String message) {
    noteListener1 = refToken.document(receiver).addSnapshotListener(new EventListener<DocumentSnapshot>() {
        @Override
        public void onEvent(@Nullable DocumentSnapshot documentSnapshot, @Nullable FirebaseFirestoreException e) {
            if (e != null) {
                Log.d(" MyFirebaseMessag", "" + e);
                return;
            }
            if (documentSnapshot != null && documentSnapshot.exists()) {
                Token token = documentSnapshot.toObject(Token.class);
                Data data = new Data(currentUserEmail, R.mipmap.ic_launcher, username, ": " + message, "New Message",
                        OtherUsersEmail, senderImage, chatType, chatRoomId,membersCanWrite);
                assert token != null;
                Sender sender = new Sender(data, token.getToken());
                apiService.sendNotification(sender)
                        .enqueue(new Callback<MyResponse>() {
                            @Override
                            public void onResponse(@NonNull Call<MyResponse> call, @NonNull Response<MyResponse> response) {
                                if (response.code() == 200) {
                                    assert response.body() != null;
                                    if (response.body().success != 1) {
                                        Toast.makeText(MessagesActivity.this, "Failed!", Toast.LENGTH_SHORT).show();
                                    }
                                } else {
                                    Log.d(" MyFirebaseMessag", "response.code() != 200");
                                }
                            }
                            @Override
                            public void onFailure(@NonNull Call<MyResponse> call, @NonNull Throwable t) {
                            }
                        });
            } else {
                Log.d(" MyFirebaseMessag", "documentSnapshot null");
            }
        }
    });
}

0 个答案:

没有答案