我正在尝试从Cloud Firestore数据库检索简单数据。 使用以下代码,我试图显示“ prodotti”集合中的2个属性,但是不显示烤面包消息,也不显示日志消息。请问有人可以找到问题吗? (该项目是他的起点,不要因为公共规则而怪我,但我试图了解基本原理是什么)
这是数据库结构:
我尝试读取这些数据的片段:
public class FragmentHome extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View fragmentHomeView=inflater.inflate(R.layout.fragment_layout_home_vuoto, container, false);
return fragmentHomeView;
}
//debug message
//Toast.makeText(getContext(), "debug", Toast.LENGTH_LONG).show();
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
DatabaseReference root= FirebaseDatabase.getInstance().getReference();
final DatabaseReference prodotti= root.child("prodotti");
final TextView nulla=(TextView) view.findViewById(R.id.textCarrelloVuoto);
ImageView carr=(ImageView) view.findViewById(R.id.immagineCarrelloVuoto);
ValueEventListener vel=new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String line="";
for(DataSnapshot ds : dataSnapshot.getChildren()){
String nome=ds.child("nome").getValue(String.class);
String ndisp=ds.child("ndisp").getValue(String.class);
line.concat(nome+" "+ndisp);
Toast.makeText(getContext(), line, Toast.LENGTH_LONG).show();
}
Log.i("TAG", line);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
};
prodotti.addListenerForSingleValueEvent(vel);
}
}
“ Prodotti”类:
public class Prodotti {
public int id;
public String nome;
public boolean disponibile;
public int ndisp;
public Prodotti(){
//chiamate da dataSnapshot
}
public Prodotti(int fid, String fnome, boolean fdisp, int fndisp){
this.id=fid;
this.nome=fnome;
this.ndisp=fndisp;
this.disponibile=fdisp;
}
}
答案 0 :(得分:0)
此代码无法访问Cloud Firestore。它正在访问实时数据库。屏幕截图显示了Cloud Firestore,但是代码永远不会看到该数据,因为它是完全不同的数据库产品。
请使用documentation for Cloud Firestore学习如何使用它。