我无法从Firebase数据库获取数据

时间:2017-03-25 19:49:47

标签: android firebase firebase-realtime-database

我正在将Firebase用于Android项目,并且在将数据推送到服务器时效果很好,但在检索数据时,我什么都没得到。

这是我的firebase的结构

This image contains My Firebase database

这是我从Firebase检索数据的代码

mRef.child("User").addValueEventListener(new ValueEventListener() {
         @Override
         public void onDataChange(DataSnapshot dataSnapshot) {

             counter = dataSnapshot.getChildrenCount();
             for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
                 post = postSnapshot.getValue(SettersGetters.class);
                 nicuNames.add(post.getNicuName());
                 nicuAddresses.add(post.getNicuAddress());
                 niucCount.add(post.getNicuCount());
                 nicuPrices.add(post.getNicuCount());
                 nicuPhones.add(post.getNicuPhone());
                 nicuUpdate.add(post.getNicuUpdate());
                 nicuLat.add(post.getNicuLat());
                 nicuLng.add(post.getNicuLng());
                 nicuDes.add(post.getNicuDesc());
                 a++;
                 Toast.makeText(MapsActivity.this,"jhkjhk", Toast.LENGTH_LONG).show();
                 System.out.println(nicuNames.get(0));
             }
             //Toast.makeText(MapsActivity.this,"jhkjhk" + a, Toast.LENGTH_LONG).show();
         }

         @Override
         public void onCancelled(DatabaseError databaseError) {

         }

     });

在制作Toast以至少打印子项数时,每次都返回0

Toast.makeText(MapsActivity.this,a+"",Toast.LENGTH_SHORT).show();

2 个答案:

答案 0 :(得分:1)

您希望收听User键的子事件,而不是值事件。

替换

mRef.child("User").addValueEventListener(new ValueEventListener() {

mRef.child("User").addChildEventListener(new ChildEventListener() {

然后,实施

  • onChildAdded(DataSnapshot snapshot, String previousChildName)

  • onChildChanged(DataSnapshot snapshot, String previousChildName)

从那里开始,你将DataSnapshot映射到一个(比SettersGetters.class更好的命名类

答案 1 :(得分:0)

试试这个

if salary >= (average - 5000) and salary <= (average + 5000)
相关问题