Android -Firebase:代码等同于将数据ApaSeReference的所有用户列为Swift



我刚刚开始使用Android,我只是迅速,我需要帮助来翻译以下代码,并在字符串数组中输入数据库的所有用户:

//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()
        }

这就是您可以在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(的构造函数,则可以删除该行。

最新更新