我想检索“出席”节点下的所有数据,例如“ Present”,“ On Vacation”等。然后我想以ListView
或RecycleView
显示数据。这样做的基本逻辑是什么?
据我所知:
package com.example.attendancemanagementsystem;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class ViewRecord extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_record);
}
}
这是正在提取的数据。
答案 0 :(得分:2)
根据您的评论,要在ListView
中显示所有这些值,请使用以下代码:
ListView listView = (ListView) findViewById(R.id.list_view);
List<String> values = new ArrayList<>();
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, values;
listView.setAdapter(arrayAdapter);
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference attendanceRef = rootRef.child("Users").child(uid).child("Attendance");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String key = ds.getKey();
String value = ds.getValue(String.class);
values.add(key + ", " + value);
}
arrayAdapter.notifyDatasetChanged();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
}
};
attendanceRef.addListenerForSingleValueEvent(valueEventListener);
答案 1 :(得分:0)
首先检查应用程序gradle中的依赖项。
implementation 'com.google.firebase:firebase-database:16.1.0'
implementation 'com.google.firebase:firebase-core:16.0.7'
初始化变量。
private lateinit var mStorageRef: StorageReference
private lateinit var auth: FirebaseAuth
然后获取您的firebase数据库参考。
mStorageRef = FirebaseStorage.getInstance().reference
auth = FirebaseAuth.getInstance()
之后,从该节点获取所需的数据。
StorageRef.child("Users/${auth.currentUser!!.uid}/attendance")