我正在创建一个血液银行应用程序,其中,当用户请求血液,它采取所请求的血型,并在数据库中搜索相同的血型。它显示可以捐献该血型的所有用户的列表。
在列表中,我已经实现了一个消息和调用用户的选项。此外,我希望应用程序发送通知所有用户谁有相同的血型。
我想实现的是,当用户请求献血时,在向他展示所有可以献血的用户名单的同时,App还应该向所有订阅该主题的用户发送通知。
因此,是否有任何可能的方法,我可以通过编程方式发送FCM给所有订阅同一主题的用户。
这里,我在成功登录时向用户订阅一个主题:
firebaseAuth.signInWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
progressDialog.dismiss();
topicSubscription();
} else {
progressDialog.dismiss();
String exception = task.getException().getMessage();
HelperClass.showSnakbarMsg(rootView, exception);
}
}
});
}
private void topicSubscription() {
FirebaseMessaging.getInstance().subscribeToTopic("Blood")
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
String msg = getString(R.string.msg_subscribed);
if (!task.isSuccessful()) {
msg = getString(R.string.msg_subscribe_failed);
} else {
startActivity(new Intent(LoginActivity.this, MainActivity.class));
finish();
}
Log.d("log", msg);
Toast.makeText(LoginActivity.this, msg, Toast.LENGTH_SHORT).show();
}
});
这是我的Firebase消息传递类:
public class MyFirebaseMessagingService extends FirebaseMessagingService {
private static final String TAG = "MyFirebaseMsgService";
/**
* Called when message is received.
*
* @param remoteMessage Object representing the message received from Firebase Cloud Messaging.
*/
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
// TODO(developer): Handle FCM messages here.
Log.d(TAG, "From: " + remoteMessage.getFrom());
if (remoteMessage.getData().size() > 0) {
Log.d(TAG, "Message data payload: " + remoteMessage.getData());
}
if (remoteMessage.getNotification() != null) {
Log.d(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody());
}
}
我读过它,许多人说要打一个API来以编程方式发送FCM。但是我在firebase中创建整个应用程序,所以我的数据库也在firebase中,由于我的数据库在firebase中,我不能只为一个通知使用API,就像我必须为该通知管理数据库中的一些表,而对于只有一个表,我必须管理单独的数据库。因此,有任何方法,我可以发送FCM编程给所有用户谁订阅了相同的主题,在成功加载捐赠者名单,显示谁可以捐献到所请求的血型。谢谢
您可以直接从android发送推送通知,直接发送到所有订阅主题的设备,查看下面的链接如何从android直接发送MSG,但是在这个示例中用户是一对一发送消息,要向订阅主题的用户发送fcm消息,您需要更改fcm文档指定的消息格式
我可以从Firebase控制台向单个设备、主题和用户段发送通知。 我想向用户段发送推送通知。我搜索了很多,但我只得到脚本发送通知给单个用户或主题,而不是用户段。 我试过下面的代码 下面是我的回答
Firebase控制台允许我们向单个用户、组、订阅主题的用户或整个用户群发送通知。是否有任何代码允许我们以同样的方式直接发送通知,但以编程方式发送? 例如,如果我有一个用户列表(包含他们的Firebase UID),如果我单击其中一个用户,我是否可以通过Firebase向该用户发送通知,就像控制台允许我们通过控制台发送通知一样? 此Firebase Blog使用Google App Engine
现在我有一个超过一万名成员的组,并且我为一个组创建了一个主题(通知主题),在这个主题中,组中的所有用户都订阅了这个主题。现在在组内,任何用户都可以添加类似图像、文件或视频的帖子。当用户添加帖子时,我需要发送通知给所有订阅该主题的用户,但除了一个,即添加帖子的人。我怎样才能做到这一点?? 现在通知将发送给所有用户,包括添加帖子的人。
我试图创建基于@JmsListener注释的发布-订阅示例:https://github.com/lkrnac/book-eiws-code-samples/tree/master/05-jms/0515-publish-subscribe 相关代码片段: 问题是,要获得这种行为: 但每个消息都应该由两个侦听器根据主题的定义来使用。我错过了什么?
我正在寻找一种完全从代码创建发布/订阅主题的方法。我设法用域验证api验证域,但我找不到向项目注册域的api。这里描述的唯一方法https://cloud.google.com/pubsub/advanced#register与控制台的交互使用。
目前,我已经开始使用ActiveMQ处理JMS主题。我已经通过JAVA代码(如下所述)创建了发布者和持久订阅者,并且在订阅者端也收到了消息。 Publisher.Java 订阅者.java 我对以下主题有一些疑问, 如何检查有多少订阅者使用 Java JMS 在主题中主动查找消息? 如何从主题中获取活动和持久订阅者列表? 我们是否可以删除主题中发布的消息? 在这些情况下帮助我。 提前致谢。