简体   繁体   English

从Google Firebase检索数据并在android studio应用程序的列表视图中显示

[英]Retrieve data from google firebase and display in list view in android studio app

My team and I are working on an android studio project. 我和我的团队正在从事一个android studio项目。 We can add data to the firebase. 我们可以将数据添加到Firebase。 We are trying to retrieve data from the database but we think that we cannot reference the correct ID to retrieve data in a list view. 我们正在尝试从数据库中检索数据,但是我们认为我们无法引用正确的ID来在列表视图中检索数据。 We are trying to retrieve the amount, type and start under the Feedings Class. 我们正在尝试检索数量,类型并在Feedings类下开始。 This is how our firebase database is set up. 这就是我们的firebase数据库的设置方式。

Here is my code: 这是我的代码:

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

    mListView = (ListView) findViewById(R.id.listView);

    mAuth = FirebaseAuth.getInstance();
    database = FirebaseDatabase.getInstance();
    //myRef = database.getReference();
    FirebaseUser user = mAuth.getCurrentUser();
    userID = user.getUid();
    myRef = database.getReference("/Users/" + userID + "/Feedings");

    mAuthListener = new FirebaseAuth.AuthStateListener() {
        @Override
        public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
            FirebaseUser user = firebaseAuth.getCurrentUser();
            if(user != null){
                Log.d(TAG, "Signed in" + user.getUid());
                toastMessage("Successfully signed in: ");
            }else{
                Log.d(TAG, "Currently signed out");
            }

        }
    };

    myRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            showData(dataSnapshot);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

}

private void showData(DataSnapshot dataSnapshot) {
    for(DataSnapshot ds: dataSnapshot.getChildren()){
        Feeding feeding = new Feeding();
        feeding.setAmount(ds.child(userID).getValue(Feeding.class).getAmount());

        Log.d(TAG, "showData: name: " + feeding.getAmount());

        ArrayList<String> arrayList = new ArrayList<>();
        arrayList.add(feeding.getAmount());
        ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1, arrayList);
        mListView.setAdapter(adapter);
    }
}

@Override
public void onStart(){
    super.onStart();
    mAuth.addAuthStateListener(mAuthListener);
}

@Override
public void onStop(){
    super.onStop();
    if(mAuthListener != null){
        mAuth.removeAuthStateListener(mAuthListener);
    }
}


private void toastMessage(String message){
    Toast.makeText(this, message, Toast.LENGTH_LONG).show();
}

} }

try to use the reference like this, it's provided in the official docs. 尝试使用像这样的参考,它在官方文档中提供。 and be aware of your ShowData method it's not correct. 并注意您的ShowData方法是不正确的。

myRef = database.getReference();  

  myRef.child("Users").child(userID).child("Feedings")
   .getReference().addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            showData(dataSnapshot);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });




private void showData(DataSnapshot dataSnapshot) {
    ArrayList<String> arrayList = new ArrayList<>();

    for(DataSnapshot ds: dataSnapshot.getChildren()){
        Feeding feeding = ds.getValue(Feeding.class);
        Log.d(TAG, "showData: name: " + feeding.getAmount());
        arrayList.add(feeding.getAmount());

    }


        ArrayAdapter adapter = new 
        ArrayAdapter(this,android.R.layout.simple_list_item_1, arrayList);
        mListView.setAdapter(adapter);
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何使用谷歌应用程序引擎从数据存储区检索信息,并使用Java在Android应用程序的列表视图中显示它? - how to retrieve info from datastore using google app engine and display it in a list view on an android app using java? 在Android Studio中检索Firebase数据并在ListView中显示 - Retrieve Firebase Data and Display in ListView in Android Studio 如何从Firebase正确连接并显示数据到自定义列表视图Android Studio - How to properly connect and display data from Firebase to custom list view Android Studio 将数据从 firebase 检索到 android studio 作为列表视图 - Retrieve data from firebase to android studio as listview 无法从Firebase检索数据到列表视图 - Unable to retrieve data from firebase into list view 在 android 工作室中检索 Firebase 回收视图中特定值的数据 - retrieve data of specific value in Firebase recycle view in android studio 从 Android Studio 中的实时 firebase 数据库中检索数据 - Retrieve data from realtime firebase database in Android Studio 无法从 android studio 3.5 上的 firebase 检索数据 - can't retrieve data from firebase on android studio 3.5 Android Studio:如何从 Firebase 检索特定数据? - Android studio : How do I retrieve specific data from Firebase? 是否可以从firebase检索哈希映射数据并将其插入列表视图? - Is it possible to retrieve hash map data from firebase and insert it into a list view?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM