我刚开始使用Android,我只是Swift,我需要帮助来翻译以下代码并在字符串数组中输入我数据库的所有用户:
//On va recuperer la liste de toute les donnees de la BDD
let ref: DatabaseReference! = Database.database().reference()
let query = ref.child("Users").queryOrdered(byChild: "Name") //Ceux qui on l'enfant Users
query.observeSingleEvent(of: .value) {
(snapshot) in
for child in snapshot.children.allObjects as! [DataSnapshot] {
let value = child.value as? NSDictionary
//On va rentrer les donnees dans des string
let name = value?["Name"] as? String ?? ""
let mail = value?["Email"] as? String ?? ""
let phone = value?["Phone"] as? String ?? ""
let id = value?["ID"] as? String ?? ""
//Avec les string on creer l'objet
let user: User = User(mail: mail, phone: phone, name: name)
user.id = id
//On l'ajoute au arraylIST
self.users.append(user)
}
//Et on raffraichi le listView
self.tableView.reloadData()
}
答案 0 :(得分:0)
这是你在Android中编写swift代码的方法:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
Query query = rootRef.child("Users").orderByChild("Name");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
List<User> list = new ArrayList<>();
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String name = ds.child("Name").getValue(String.class);
String mail = ds.child("Email").getValue(String.class);
String phone = ds.child("Phone").getValue(String.class);
String id = ds.child("ID").getValue(String.class);
User user = new User(mail, phone, name);
//User user = new User(id, mail, phone, name);
list.add(user);
}
Log.d("TAG", list.toString());
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
query.addListenerForSingleValueEvent(valueEventListener);
如您所见,代码中有一条注释行。如果具有使用4个参数(包括id)的构造函数,则可以取消注释该行。