java - 如何在用户不在应用程序(android studio)中时运行firebase实时数据库“onChildEventListener”?
问题描述
我有一个 Android 应用程序可以监听我的 firebase 实时数据库中添加的子项。这个应用程序有点像一个消息应用程序,所以当这个孩子被添加时,我需要这个应用程序能够立即阅读它。我当前的代码有效,但仅当应用程序打开并运行时。我想知道如何使这个子侦听器在手机启动时启动,并且可以在将这些消息添加到 Firebase 时接收和处理这些消息,即使用户尚未打开该应用程序也是如此。
事件监听器代码:
ChildEventListener childTherapist = new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot snapshot, @Nullable String previousChildName) {
Log.d("Fetching", "onChildAdded called");
childTherapistChildAdded(snapshot);
}
@Override
public void onChildChanged(@NonNull DataSnapshot snapshot, @Nullable String previousChildName) {
Log.d("Fetching", "onChildChanged called");
Log.d("Fetching", "previousChildName: " + previousChildName);
}
@Override
public void onChildRemoved(@NonNull DataSnapshot snapshot) {
Log.d("Fetching", "onChildRemoved called");
}
@Override
public void onChildMoved(@NonNull DataSnapshot snapshot, @Nullable String previousChildName) {
Log.d("Fetching", "onChildMoved called");
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
/*
* TODO:
* This method will be triggered in the event that this listener either failed at the server, or is removed as a result of the security and Firebase rules.
* IMplement this
*/
}
};
Log.d("Fetching", "Adding stuff for user: " + mAuth.getUid());
dbRef.child("Connections").child(connectionID).child(mAuth.getUid()).child("Messages").addChildEventListener(childTherapist);
}
TL;DR 我只需要一种方法让这段代码在后台运行
解决方案
推荐阅读
- python - 为什么我的烧瓶 API 不返回类标签?
- uml - PlantUML 活动图新(测试版)语法与短代码引用早期活动?
- flutter - 显示网络图像列表同时让它们全屏且可滑动以切换图像的最佳方式是什么?
- excel - 如果存在于excel的范围内
- jquery - JS平滑滚动不适用于附加锚
- azure-keyvault - Vault .NET - 版本化 K/V 机密引擎的路径无效
- wicket - 第一次呈现页面时如何为模态窗口生成空div?
- amazon-web-services - 如何检查 VPC 中两个资源之间的连接性/可达性?
- django - 如何以最低的成本在 GCP 上部署 Django 应用程序和 PostgreSQL 以实现最小的服务器负载?
- xcode - 对目标 macOS 10.15 使用 Xcode 12 构建错误