【问题标题】:How to send notifications for changes in firebase database?如何发送 Firebase 数据库更改的通知?
【发布时间】:2019-11-01 12:20:50
【问题描述】:

我有一个允许用户写入数据库的 android 应用程序。我从最近的帖子中阅读了有关如何使用 firebase 侦听器和服务类来收听 firebase 数据库中特定子项的数据更新的文章。然而,我也听说当应用程序关闭时它并不总是有效。我也听说过 Firebase Cloud Messaging,但我看到的所有示例都是在 kotlin 或 Javascript 中每当数据库发生更改时通知用户的最佳和最有效的方法是什么一天中的数据库,但每次发生更改时都会替换旧通知。请注意,我只想在孩子发生更改时收到通知,比如说孩子“general_messages”,我如何向用户发送通知,例如,每当发生更改时,通知说“新的更改请登录”即使数据不涉及特定用户,在那个孩子中?我是firebase的新手,请提供相关帮助或指导

【问题讨论】:

  • 您不需要 Java 脚本代码来通知本地数据库更改中所做的更改。而不是在这里问想法,你谷歌它,你可以获得许多与你的问题相关的想法
  • 我做了谷歌,但所有结果和示例都在 kotlin 或 Java 脚本中
  • 您可以查看this

标签: java android firebase firebase-realtime-database


【解决方案1】:

据我了解,您的要求是在后端数据库上的数据发生更改时向设备推送通知,即使应用程序未在用户设备上运行。

由于设备未运行您需要从后端发送通知(使用 FCM)的软件 - 当手机收到通知时,应用程序将启动,您可以在应用程序中处理您需要的内容。

通常这是使用以下逻辑实现的: 1. 当应用程序连接时,它会保存它感兴趣的数据和一个 FCM 令牌来代表这个设备在 firebase 数据库的某个地方。 2. 您创建了一个在数据库的某些区域发生更改时运行的 firebase 云函数。 3.这个功能看看有什么变化;将其与 (1) 中创建的数据进行比较,并向需要它的每个设备令牌发送通知。

第 3 步中的通知可以是出现在状态栏中的“用户”通知,可以通过点击等方式与应用交互,也可以静默启动应用以在后台进行处理。

p>

【讨论】:

    【解决方案2】:

    有关设置 firebase 和其他信息的完整详细说明,请参阅为 real time firebase data base 提供的 fire base 文档

    第 1 步:写入数据库

    使用getInstance() 检索数据库实例并引用您要写入的位置。

    // Write a message to the database
    FirebaseDatabase database = FirebaseDatabase.getInstance();
    DatabaseReference myRef = database.getReference("message");
    
    myRef.setValue("Hello, World!");
    

    第 2 步:从您的数据库中读取数据

    要让您的应用数据实时更新,您应该在刚刚创建的引用中添加ValueEventListener

    该类中的onDataChange() 方法在附加监听器时触发一次,并且在每次数据更改时触发一次,包括子项。

    // Read from the database
    myRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            // This method is called once with the initial value and again
            // whenever data at this location is updated.
            String value = dataSnapshot.getValue(String.class);
            Log.d(TAG, "Value is: " + value);
        }
    
        @Override
        public void onCancelled(DatabaseError error) {
            // Failed to read value
            Log.w(TAG, "Failed to read value.", error.toException());
        }
    });
    

    注意:在扩展 FirebaseMessagingService 服务的 Firebase Notification 类中,您可以发布静默推送并处理该静默推送,无论您想在应用中做什么。

    How to send push notification from firebase

    【讨论】:

    • 我知道如何写入数据库并监听数据库的变化。我想在应用程序关闭或未运行时在数据库中发生更改时创建通知
    • 在扩展 FirebaseMessagingService 服务的 Firebase Notification 类中,您可以发布静默推送并处理您想要在应用中执行的任何操作。
    • 请您发送一个链接,向我展示如何创建 Firebase 通知类以及如何执行您提到的所有操作
    • firebase.google.com/docs/cloud-messaging/android/client,推送将由服务器在设备 ID 上发送,因此您需要将设备 ID 存储在服务器上。我相信您将使用推送通知服务。
    猜你喜欢
    • 1970-01-01
    • 2017-10-24
    • 1970-01-01
    • 1970-01-01
    • 2019-03-31
    • 1970-01-01
    • 2016-10-15
    • 2019-01-28
    • 1970-01-01
    相关资源
    最近更新 更多