android - Android - 一旦来自附近位置的新数据进入实时数据库,如何发送通知(当应用程序未打开时)?
问题描述
一旦数据进入实时数据库,我想向该位置附近的用户(在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 Cloud Messaging服务发送通知。
以及自动发送通知的逻辑,您可以使用云功能,当新数据添加到数据库时将触发该功能,该功能将根据您的逻辑向所需用户发送通知。
推荐阅读
- caching - NUXT.JS 存储/缓存 API 请求
- java - 将 12 小时时间格式转换为 24 小时格式
- c - 输出如何 1 和 4 。我无法理解c程序背后的逻辑?
- gcc - GCC 库中不存在 libstdc++.a
- javascript - How can make a list from matrix in javascript?
- php - 提交表单后如何查看表单中输入的数据
- reactjs - 获取错误无法解构属性,因为它是未定义的
- gwt - GWT 应用程序在 devmode 下工作,但在编译后不工作
- java - 使用 SSL 的 nginx 反向代理背后的 Keycloak
- css - 如何将侧栏的位置更改为右侧?