java - 如何在firestore android studio中获取新添加数据的通知?

标签 java android notifications google-cloud-firestore snapshot

我正在我的应用程序上执行通知,并且正在使用 firestore。我的问题是,当snapshotlistener检测到数据库中新添加的数据时,我想向用户发送通知但是当我打开应用程序时,即使我没有添加,它也会立即显示现有的通知一个新的数据。我需要一些条件,在这些条件下我只能获取新添加的数据,或者如果我的数据库数据中缺少某些内容,则需要克服此问题。下面是我的数据库结构。 enter image description here

db.collection("Buyers")
                .document(userID)
                .collection("Notifications")
                .addSnapshotListener(new EventListener<QuerySnapshot>() {
                    @Override
                    public void onEvent(@Nullable QuerySnapshot snapshots, @Nullable FirebaseFirestoreException e) {
                        if (e != null) {
                            Log.e(LOG_DB, e.toString());
                            return;
                        }
                        for (DocumentChange dc : snapshots.getDocumentChanges()) {

                            if (dc.getType() == DocumentChange.Type.ADDED) {
                                String title = dc.getDocument().getData().get("notificationTitle").toString();
                                String body = dc.getDocument().getData().get("notificationBody").toString();

                                //Method to set Notifications
                                getNotification(title, body);
                            }
                        }
                    }
                });

最佳答案

如果您只想发送通知,可以使用 Firebase Cloud Messages,它可以提供您尝试自行实现的功能。 https://firebase.google.com/docs/cloud-messaging

如果您想在 Firestore 中的数据更改后发送通知,您可以使用 FireStore 触发器 ( https://firebase.google.com/docs/functions/firestore-events ) 并通过 Firebase 函数调用 ( Send push notifications using Cloud Functions for Firebase ) 发送通知

关于java - 如何在firestore android studio中获取新添加数据的通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58300661/

相关文章:

java - Checkstyle 规则强制类部分的空行分隔

java - 在 Spring @Value 注释中省略美元占位符

android - 如何使用 openRawResource Fd()?

android - 安装android插件后如何将Android平台添加到Netbeans 7.0中

android - 如何设置 Recurring AlarmManager 以每天执行代码

java - 如何将从联系人中选择的电话号码存储到字符串中?

java - 如何向 EditTextPreference 添加消息?

java - 向 ImageView 添加滑动手势

laravel - 如何在 Laravel 中通过 toArray/toDatabase 函数指定通知属性?

iphone - 如何判断我的 iPhone 是否处于礼貌/静音模式?