Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Firebase';没有这样的实例字段';错误_Java_Android_Firebase - Fatal编程技术网

Java Firebase';没有这样的实例字段';错误

Java Firebase';没有这样的实例字段';错误,java,android,firebase,Java,Android,Firebase,我有一些从Firebase获取数据的代码,虽然有效,但不知怎的停止了工作。由于出现错误,ValueEventListener中的所有内容都被跳过:“没有这样的实例字段:'mDatabase'。我怎样才能解决这个问题?我尝试重新启动Android Studio和我的电脑,但它一直给我这个错误 代码: 此代码可能会帮助您解决此问题 公共类映射_活动扩展了AppCompatActivity{ private DatabaseReference databaseRefer; private Fireba

我有一些从Firebase获取数据的代码,虽然有效,但不知怎的停止了工作。由于出现错误,
ValueEventListener
中的所有内容都被跳过:“没有这样的实例字段:'mDatabase'。我怎样才能解决这个问题?我尝试重新启动Android Studio和我的电脑,但它一直给我这个错误

代码:


此代码可能会帮助您解决此问题

公共类映射_活动扩展了AppCompatActivity{

private DatabaseReference databaseRefer;
private FirebaseDatabase mFirebaseInstance;
private ArrayList<Location> reisDataList = new ArrayList<>();
private MyTripsAdapter myTripsAdapter;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_maps);

    mFirebaseInstance = FirebaseDatabase.getInstance(); //getting instance of FireDatabase

    //getting db reference from specific node, here you're not refering the node
    databaseRefer = mFirebaseInstance.getReference("windfirm/future");  

    ListView listView = (ListView) view.findViewById(R.id.mijnReizenList);

    databaseRefer.addListenerForSingleValueEvent(new ValueEventListener() {

       @Override
       public void onDataChange(DataSnapshot dataSnapshot) {

        // pendingCount is the count for dataSnapshot children
        long[] pendingCount = { dataSnapshot.getChildrenCount() };

       //parsing all the node list data from dataSnapshot
         for (DataSnapshot child : dataSnapshot.getChildren()) {


               String rightLocation = child.child("lat").getValue().toString();
               String leftLocation = child.child("lon").getValue().toString();
               String city = child.child("city").getValue().toString();
               reisDataList.add(new  Location(rightLocation, leftLocation, city)); //adding object to arraylist

            // we loaded a child, check if we're done
               pendingCount[0] = pendingCount[0] - 1;
               if (pendingCount[0] == 0) {
                   myTripsAdapter = new MyTripsAdapter(getContext(), reisDataList);
                  listView.setAdapter(myTripsAdapter);
               }               


           }


       }

       @Override
       public void onCancelled(DatabaseError databaseError) {

       }
   });


  }
私有数据库参考数据库参考;
私有FirebaseDatabase mFirebaseInstance;
private ArrayList reisDataList=new ArrayList();
私人MyTripsAdapter MyTripsAdapter;
@凌驾
创建时受保护的void(@Nullable Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_映射);
mFirebaseInstance=FirebaseDatabase.getInstance();//获取FireDatabase的实例
//从特定节点获取db引用,这里您没有引用该节点
databasereference=mFirebaseInstance.getReference(“windfirm/future”);
ListView ListView=(ListView)view.findViewById(R.id.mijnReizenList);
databaseRefer.addListenerForSingleValueEvent(新的ValueEventListener()){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
//pendingCount是dataSnapshot子级的计数
long[]pendingCount={dataSnapshot.getChildrenCount()};
//正在分析dataSnapshot中的所有节点列表数据
对于(DataSnapshot子项:DataSnapshot.getChildren()){
字符串rightLocation=child.child(“lat”).getValue().toString();
字符串leftLocation=child.child(“lon”).getValue().toString();
字符串city=child.child(“city”).getValue().toString();
reisDataList.add(新位置(rightLocation、leftLocation、city));//将对象添加到arraylist
//我们装了一个孩子,检查我们是否完成了
pendingCount[0]=pendingCount[0]-1;
if(pendingCount[0]==0){
myTripsAdapter=新的myTripsAdapter(getContext(),reisDataList);
setAdapter(myTripsAdapter);
}               
}
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){
}
});
}

}

那么您的代码没有编译?代码运行,但它跳过了ValueEventListener的内容。请做一件事进行确认,将断点置于onDataChange的调试模式中,并直接从firebase网站更改数据库。刚刚尝试过,同样的结果,它没有到达断点。请确保引用的是正确的端点。请在您的代码中打印或调试数据库引用,并将其与目标引用相匹配。我试图使用您的代码,但适配器未以某种方式收到通知。适配器已设置,这将导致空指针异常:ValueEventListener中的数据尚未返回。是否有其他方法可以告诉适配器等待ValueEventListener返回数据?
    MyTripsAdapter myTripsAdapter = new MyTripsAdapter(getContext(), reisDataList);
    ListView listView = (ListView) view.findViewById(R.id.mijnReizenList);
    listView.setAdapter(myTripsAdapter);*/
private DatabaseReference databaseRefer;
private FirebaseDatabase mFirebaseInstance;
private ArrayList<Location> reisDataList = new ArrayList<>();
private MyTripsAdapter myTripsAdapter;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_maps);

    mFirebaseInstance = FirebaseDatabase.getInstance(); //getting instance of FireDatabase

    //getting db reference from specific node, here you're not refering the node
    databaseRefer = mFirebaseInstance.getReference("windfirm/future");  

    ListView listView = (ListView) view.findViewById(R.id.mijnReizenList);

    databaseRefer.addListenerForSingleValueEvent(new ValueEventListener() {

       @Override
       public void onDataChange(DataSnapshot dataSnapshot) {

        // pendingCount is the count for dataSnapshot children
        long[] pendingCount = { dataSnapshot.getChildrenCount() };

       //parsing all the node list data from dataSnapshot
         for (DataSnapshot child : dataSnapshot.getChildren()) {


               String rightLocation = child.child("lat").getValue().toString();
               String leftLocation = child.child("lon").getValue().toString();
               String city = child.child("city").getValue().toString();
               reisDataList.add(new  Location(rightLocation, leftLocation, city)); //adding object to arraylist

            // we loaded a child, check if we're done
               pendingCount[0] = pendingCount[0] - 1;
               if (pendingCount[0] == 0) {
                   myTripsAdapter = new MyTripsAdapter(getContext(), reisDataList);
                  listView.setAdapter(myTripsAdapter);
               }               


           }


       }

       @Override
       public void onCancelled(DatabaseError databaseError) {

       }
   });


  }