一旦来自附近位置的新数据进入relatime数据库,如何发送通知(当应用程序未打开时)?

Posted

技术标签:

【中文标题】一旦来自附近位置的新数据进入relatime数据库,如何发送通知(当应用程序未打开时)?【英文标题】:How to send a notification (when the app is not opened) as soon as new data from nearby location enters the relatime database? 【发布时间】:2021-08-18 20:53:44 【问题描述】:

一旦数据进入实时数据库,我想向该位置附近的用户(在3 公里的半径)从数据发布到火力基地的地方。

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

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

我已阅读文档并看到演示应用程序,但我不知道如何做到这一点..

这是我如何获取发布在用户附近位置的数据并将其显示在回收站视图中-

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()
            
        

【问题讨论】:

您好,我一直在研究您的问题,发现一些与应用程序关闭时的 Firebase 通知相关的案例,其中一些说这取决于手机品牌和 android版本,或对您的代码进行一些修改或实现,因为我对您的问题的了解是,当 App2 关闭时,您无法通过 App1 向 App2 发送通知。 这里是我说的一些链接,如果与您的问题有关,请告诉我:1. 这有点旧,但也许有帮助 (github.com/firebase/quickstart-android/issues/41),2. 推送应用关闭时的通知 - Stack Overflow 相关 (***.com/questions/24313539/…) 案例和 3. 应用关闭时发送通知 - 其他 Stack Overflow (***.com/questions/39674850/…) 【参考方案1】:

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

此外,您可能会发现另一个 Stack Overflow 帖子中的 answer 很有用,该帖子显示了一个代码示例。

【讨论】:

我想你没有得到我的问题。实际上有两个应用程序。而且我希望每当用户从第一个应用程序发布任何内容时,这样在他附近位置使用第二个应用程序的用户将在应用程序未打开时收到通知。所以,我认为你给出的答案并不能解决我的问题…… 好的,您是在一个项目中拥有这 2 个应用程序,还是每个环境都有不同的项目?

以上是关于一旦来自附近位置的新数据进入relatime数据库,如何发送通知(当应用程序未打开时)?的主要内容,如果未能解决你的问题,请参考以下文章

在 Xcode 中使用拆分数据查找用户位置附近的数据

MongoDB的地理位置索引

iPhone应用程序:集成基于位置的服务

小程序里附近的人功能实现,云开发数据库实现附近的人,按照位置远近排序,附近多少公里内的好友

数据库/地理位置。寻找附近的人[关闭]

如何在用户位置附近显示兽医