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