java - FireBase onDataChange 未启动
问题描述
我正在尝试从 Android (Java) 中的 FireBase 数据库中获取特定数据
问题是,onDataChange 永远不会启动。
Class ShowExercisesDetail.java
GestionEjercicios.getExerciseById(id);
这里我调用另一个类的方法。
import android.content.Context;
import androidx.annotation.NonNull;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import java.util.ArrayList;
import java.util.List;
public class GestionEjercicios {
public static void readData(DatabaseReference ref, final OnGetDataListener listener) {
listener.onStart();
ref.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
listener.onSuccess(dataSnapshot);
}
@Override
public void onCancelled(DatabaseError databaseError) {
listener.onFailure();
}
});
}
public static List<Exercise> EJERCICIOS = new ArrayList<Exercise>();
public static List<Exercise>SINGLEEXERCISE = new ArrayList<Exercise>();
boolean f = false;
public static void getExerciseById(String id) {
DatabaseReference reff;
reff = FirebaseDatabase.getInstance().getReference().child("Exercises");
readData(reff, new OnGetDataListener() {
@Override
public void onSuccess(DataSnapshot dataSnapshot) {
System.out.println("test");
}
@Override
public void onStart() {
System.out.println("test");
}
@Override
public void onFailure() {
System.out.println("test");
}
});
这是那个方法,它没有进入的问题。
我怎样才能解决这个问题?
我尝试了很多东西,但没有一个进入那个 OnChange,还有其他方法吗?
编辑目前已达到 GetExerciseById 上的 OnStart 方法。
解决方案
推荐阅读
- django - Django 的 ./manage.py 总是会导致 skaffold 重建:有没有办法防止这种情况?
- python - 为什么同时使用 conda 和 pip?
- javascript - React 组件状态仅在 DevTools 钩子中发生变化,而不是在前面或 console.logs
- javascript - 如何在 HTML 中使用 JavaScript 中的变量?
- java - 尝试了解 Java 枚举中函数的用法
- laravel - laravel vue 按钮获取路由但无法访问控制器
- python - 如何使用旧数组索引轻松初始化数组?
- javascript - 如何为对象的每个属性添加一个值?
- javascript - 带有 SVG.js 的蜜蜂 SVG 动画
- php - 使用php 目录中的veiw 文件?