当前位置: 首页 > 知识库问答 >
问题:

如何发送通知(当应用程序未打开)尽快从附近位置的新数据进入相对数据库?

冀崇凛
2023-03-14

一旦数据进入实时数据库,我想向数据发布到firebase的位置附近(3公里半径范围内)的用户发送通知(带有firebase发布到firebase实时数据库的一些数据,如标题、描述等)。

到目前为止,我知道如何从附近的位置获取数据,但我不知道如何在新数据从用户附近的位置进入数据库时发送通知(当应用程序关闭时)。。

如果有人知道怎么做,请告诉我。

我读过文档,看过演示应用程序,但我不知道怎么做。。

下面是我如何获得张贴在用户附近位置的数据,并将其显示在recycler视图中-

db = FirebaseDatabase.getInstance().getReference("REPORTED-CUBS")
    geofire = GeoFire(db!!.child("REPORTED-CUBS-LOCATION"))
val r_cubs_al = ArrayList<DataModel>()

geoQuery = geofire!!.queryAtLocation(GeoLocation(latitude, longitude), 3.0)

try {
    geoQuery!!.addGeoQueryEventListener(object : GeoQueryEventListener {
        override fun onKeyEntered(key: String, location: GeoLocation) {
            try {
                db!!.child(key)
                    .addValueEventListener(object : ValueEventListener {
                        override fun onDataChange(snapshot: DataSnapshot) {

                            val r_cubs: DataModel? =
                                snapshot.getValue(DataModel::class.java)

                            if (r_cubs != null) {
                                rv_police.visibility = View.VISIBLE
                                tvNoCUBSReported.visibility = View.GONE

                                r_cubs_al.add(r_cubs)

                                rv_police.adapter = ReportedCUBSAdapter(r_cubs_al)
                            }else{
                                rv_police.visibility = View.GONE
                                tvNoCUBSReported.visibility = View.VISIBLE
                            }
                        }

                        override fun onCancelled(firebaseError: DatabaseError) {
                            println("The read failed: " + firebaseError.message)
                        }
                    })
            }catch (e : Exception){
                e.printStackTrace()
            }
        }

共有1个答案

白禄
2023-03-14

要发送通知,您可以使用Firebase云消息传递(FCM)。在这个留档中有设置FCM的步骤。

您还可以从另一篇堆栈溢出文章中找到有用的答案,该文章给出了一个代码示例。

 类似资料:
  • 在通知部分,我有这个通知不打开APP的问题。有什么建议吗?我试了很多可能性,但没有...我错在哪里?请帮帮我。

  • 问题内容: 在我的应用程序中,我有一个包含数据的JTable,我需要添加一个打印按钮,该按钮添加了在打印机纸张上的表中打印数据的功能(发送打印机作业),使用该类怎么可能?我一直在寻找示例,但是找不到一个简单的示例,该示例从JComponent打印一些数据。 这是我发现的网站之一:http : //java.sun.com/products/java- media/2D/forDevelopers/

  • 我正在开发一个应用程序,它使用GCM进行推送通知。 我的问题是关于如何从用户单击通知时打开/启动应用程序。我有两种潜在的情况: A)应用程序已打开,并且驻留在前台或后台,无论哪种方式,我的GCM工作正常,GCM消息到达用户点击通知并意图启动相关活动(通过通知等待意图传递)。 b)应用程序关闭,收到通知,用户再次点击通知,并试图开始相关活动,这是它变得混乱的地方。该应用程序有一个后端,所以现在需要自

  • 我有一个可安装的时间驱动触发器,在谷歌表单中间隔30分钟。如果有任何挂起的任务,触发器将发送警报。当Google工作表打开时,触发器工作正常。但问题是,当谷歌工作表未打开时,触发器正在获取旧数据,这会导致错误警报。挂起的任务数据是使用其他工作表中的导入函数计算的。另一张工作表与谷歌表单链接,在谷歌表单中,工作表通过用户的输出得到更新。 因此,如果有人可以帮助应用程序脚本代码,它将刷新工作表事件的所

  • 当应用程序完全关闭时,如何以编程方式发送通知? 示例:用户关闭应用程序,也在Android Taskmanager中,然后等待。应用程序应在X秒后或应用程序检查更新时发送通知。 我试图使用这些代码示例,但是: 应用程序关闭时推送通知-活动太多/无法工作 我如何让我的应用程序在关闭时发送通知很多信息,但我不知道如何处理 当android应用程序关闭时,如何发送本地通知?-很多信息,但我不知道如何处理

  • 在我的申请中,我必须显示有关已发生特定操作的通知? 然后我必须向登录用户显示通知。 获取通知的一种方法是在一定时间间隔后继续轮询。即拉动通知。但这会对服务器造成不必要的点击。 如何使用来自服务器的推送通知?我在Tomcat中使用JavaServlet和JSP。