从google firebase(android)获取数据
我使用firebase存储数据,但无法获取数据列表 从firabse,我特别想得到person对象的arraylist。 这是班长从google firebase(android)获取数据,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我使用firebase存储数据,但无法获取数据列表 从firabse,我特别想得到person对象的arraylist。 这是班长 public class Person { private String name; private String username; public Person() { } public Person(String name, String username) { this.name = name; this.username = usern
public class Person {
private String name;
private String username;
public Person() {
}
public Person(String name, String username) {
this.name = name;
this.username = username;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
这里是数据结构
您可以使用任何事件侦听器获取数据。下面是使用子事件侦听器的示例
List<Person> persons = new ArrayList<>();
ChildEventListener listener = new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
Person person = dataSnapshot.getValue(Person.class);
persons.add(person);
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
Person person = dataSnapshot.getValue(Person.class);
persons.remove(person);
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
};
FirebaseDatabase.getInstance().getReference().child("persons").addChildEventListener(listener);
List persons=new ArrayList();
ChildEventListener=新的ChildEventListener(){
@凌驾
公共void onChildAdded(DataSnapshot DataSnapshot,字符串s){
Person-Person=dataSnapshot.getValue(Person.class);
人。添加(人);
}
@凌驾
公共void onChildChanged(DataSnapshot DataSnapshot,字符串s){
}
@凌驾
ChildRemoved上的公共void(DataSnapshot DataSnapshot){
Person-Person=dataSnapshot.getValue(Person.class);
人。移除(人);
}
@凌驾
已移动ChildMoved上的公共void(DataSnapshot DataSnapshot,字符串s){
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){
}
};
FirebaseDatabase.getInstance().getReference().child(“人员”).addChildEventListener(监听器);
您可以使用任何事件侦听器获取数据。下面是使用子事件侦听器的示例
List<Person> persons = new ArrayList<>();
ChildEventListener listener = new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
Person person = dataSnapshot.getValue(Person.class);
persons.add(person);
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
Person person = dataSnapshot.getValue(Person.class);
persons.remove(person);
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
};
FirebaseDatabase.getInstance().getReference().child("persons").addChildEventListener(listener);
List persons=new ArrayList();
ChildEventListener=新的ChildEventListener(){
@凌驾
公共void onChildAdded(DataSnapshot DataSnapshot,字符串s){
Person-Person=dataSnapshot.getValue(Person.class);
人。添加(人);
}
@凌驾
公共void onChildChanged(DataSnapshot DataSnapshot,字符串s){
}
@凌驾
ChildRemoved上的公共void(DataSnapshot DataSnapshot){
Person-Person=dataSnapshot.getValue(Person.class);
人。移除(人);
}
@凌驾
已移动ChildMoved上的公共void(DataSnapshot DataSnapshot,字符串s){
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){
}
};
FirebaseDatabase.getInstance().getReference().child(“人员”).addChildEventListener(监听器);
Ugur B答案也是正确的。在这里,您也可以使用ValueEventListener获取firebase数据
ArrayList<String> arrayListVal = new ArrayList<String>();
fbref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
for (DataSnapshot postSnapshot : snapshot.getChildren()) {
Person person = postSnapshot.getValue(Person.class);
//Adding it to a ArrayList
arrayListVal.add(person);
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
System.out.println("Failed to fetch data: " + firebaseError.getMessage());
}
});
ArrayList arrayListVal=new ArrayList();
fbref.addValueEventListener(新的ValueEventListener(){
@凌驾
公共无效onDataChange(数据快照快照){
对于(DataSnapshot postSnapshot:snapshot.getChildren()){
Person-Person=postSnapshot.getValue(Person.class);
//将其添加到ArrayList
arrayListVal.add(人);
}
}
@凌驾
取消后的公共无效(FirebaseError FirebaseError){
System.out.println(“未能获取数据:+firebaseError.getMessage());
}
});
Ugur B答案也是正确的。在这里,您也可以使用ValueEventListener获取firebase数据
ArrayList<String> arrayListVal = new ArrayList<String>();
fbref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
for (DataSnapshot postSnapshot : snapshot.getChildren()) {
Person person = postSnapshot.getValue(Person.class);
//Adding it to a ArrayList
arrayListVal.add(person);
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
System.out.println("Failed to fetch data: " + firebaseError.getMessage());
}
});
ArrayList arrayListVal=new ArrayList();
fbref.addValueEventListener(新的ValueEventListener(){
@凌驾
公共无效onDataChange(数据快照快照){
对于(DataSnapshot postSnapshot:snapshot.getChildren()){
Person-Person=postSnapshot.getValue(Person.class);
//将其添加到ArrayList
arrayListVal.add(人);
}
}
@凌驾
取消后的公共无效(FirebaseError FirebaseError){
System.out.println(“未能获取数据:+firebaseError.getMessage());
}
});