【发布时间】:2018-04-23 16:06:45
【问题描述】:
我和我的团队正在开发一个 android studio 项目。我们可以将数据添加到 Firebase。我们正在尝试从数据库中检索数据,但我们认为我们无法引用正确的 ID 来检索列表视图中的数据。我们正在尝试在 Feedings 类下检索金额、类型和开始。 This is how our firebase database is set up.
这是我的代码:
@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();
}
}
【问题讨论】:
-
没有输出,应用程序崩溃。我运行了调试器,发现问题出在引用数据库上。
标签: java android firebase firebase-realtime-database