android - 一旦来自附近位置的新数据进入relatime数据库,如何发送通知(当应用程序未打开时)?
问题描述
一旦数据进入实时数据库,我想向该位置附近的用户(在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()
}
}
解决方案
推荐阅读
- ios - Flutter iOS 应用程序抛出致命异常缺少 opencv.h
- dialogflow-es - 对话流集成
- c++ - 理解这个问题的时间和空间复杂度
- typescript - TypeORM,多对多关系用户 - 动物,给定用户 ID 如何查询动物
- java - Docker Build 在 GitLab 上找不到 GradleWrapperMain 但可以在我的笔记本电脑上使用
- mysql - 如何交叉引用 MySQL 中的第三个表?
- git - 如何在 repo 中保存当前更改、返回旧提交、返回最近提交并恢复更改?
- amazon-dynamodb - 我应该在 Boto3 中使用什么方法在使用 AWS API 网关作为代理服务的 DynamoDB 中创建条目?
- r - 如何调整我的 fa.diagram 函数以纠正重叠?
- c++ - 返回字符串流的内容