现在我已成功一对一发送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");
}
}
});
}