Java 为什么Firebase不获取数据?
Firebase只是默默地不获取数据。 我花了很多时间研究它,但仍然不太明白什么是问题。 也许这是个很简单的错误,所以请听我的解释Java 为什么Firebase不获取数据?,java,android,database,firebase-realtime-database,Java,Android,Database,Firebase Realtime Database,Firebase只是默默地不获取数据。 我花了很多时间研究它,但仍然不太明白什么是问题。 也许这是个很简单的错误,所以请听我的解释 fRef.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot dataSnapshot) { ids = dataSnapshot.child("dic
fRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
ids = dataSnapshot.child("dictionary").child("fruitIds").getValue(DictionaryIDs.class);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
DictionaryIds.class代码
package com.example.asuper.mluvitslova;
import com.google.firebase.database.FirebaseDatabase;
import java.util.ArrayList;
public class DictionaryIDs {
private ArrayList<String> fruitIds = new ArrayList<>();
public DictionaryIDs() {
}
public DictionaryIDs(ArrayList<String> fruitIds) {
this.fruitIds = fruitIds;
}
public void addFruitId(String id){
fruitIds.add(id);
}
public ArrayList<String> getFruitIds(){
return fruitIds;
}
public void setFruitIds(ArrayList<String> fruitIds){
this.fruitIds = fruitIds;
}
}
package com.example.asuper.mluvitslova;
导入com.google.firebase.database.FirebaseDatabase;
导入java.util.ArrayList;
公共类字典{
private ArrayList fructids=new ArrayList();
公共词典ids(){
}
公共字典ID(ArrayList子类){
this.fruitIds=果类;
}
public void addFruitId(字符串id){
添加(id);
}
公共ArrayList getfructids(){
返回子实体;
}
public void setfurtoids(ArrayList furtoids){
this.fruitIds=果类;
}
}
在日志中什么都没有
此代码必须只获取DictionaryIds.class文件,但实际上Firebase只获取null对象
在最后一个
子对象下,没有字典ID
对象,只有简单的字符串。要获取所有这些ID,需要使用getChildren()
方法循环通过DataSnapshot
对象,如下所示:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference fruitRef = rootRef.child("dictionary").child("fruitIds").child("fruitIds");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String id = ds.getValue(String.class);
Log.d(TAG, id);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d(TAG, databaseError.getMessage());
}
};
fruitRef.addListenerForSingleValueEvent(valueEventListener);
日志猫中的结果将是所有这些ID。您是否确实为该子项设置了任何内容?furtoids
的子项是另一个furtoids
。如果执行dataSnapshot.child(“dictionary”).child(“frutids”).child(“frutids”).getValue(DictionaryIDs.class),会发生什么情况代码>?@流浪者什么都没有。它仍然不起作用。并获取com.google.firebase.database.DatabaseException:无法将java.util.ArrayList类型的对象转换为com.example.asuper.mluvitslova.DictionaryIDs类型