首页 > 解决方案 > 如何使用swift在ios的firebase firestore中的文档中获取arrayList

问题描述

我是 ios 新手,请考虑..我有收藏,因为下面的organizationStandardTemplate是添加的屏幕截图...我想从**roles** array list文档中存储我的数组列表。

在此处输入图像描述

这是 android 代码,它的工作正常,与我在 iOS 中使用 swift 语言想要的一样。

   FirebaseFirestore db = FirebaseFirestore.getInstance();
    db.collection("organisationStandardTemplate")
        .get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
            @Override
            public void onComplete(@NonNull Task<QuerySnapshot> task) {
                if (task.isSuccessful()){
                    if (task.getResult() != null) {
                        for (DocumentSnapshot documentSnapshot : task.getResult()){
                            if (documentSnapshot.exists()) {
                                try {
                                orgTemplate = (ArrayList<HashMap>) documentSnapshot.get("roles");
                                } catch (Exception e){
                                Log.e("Excep", e.getMessage());
                                }
                            }
                        }
                    }
                }
            }
        });

IOS代码

  func organisationStandardTemplate(){

  var orgTemplate = [AnyObject]() // here i crated my array list

  let db = Firestore.firestore()
        db.collection("organisationStandardTemplate").getDocuments() { (querySnapshot, err) in
            if err != nil{
                // print("\(document.documentID) => \(document.data())")
            }else {

              orgTemplate = //How to get and store into my orgTemplate array list 
                }
            }
        }

  }

文档 https://firebase.google.com/docs/firestore/query-data/get-data

注意:我只有一个文档,但我不想基于 DocumentID 获取,因为我有两个数据库,如测试和生产,所以每次我都无法更改内部代码..

标签: iosswiftgoogle-cloud-firestore

解决方案


声明数组列表

var orgTemplate = [AnyObject]()

 for document in querySnapshot!.documents {

          self.orgTemplate =  (document.data()["roles"] as  AnyObject) as! [AnyObject]
          print("resultdefault =sizess     :   \(self.orgTemplate.count)")
          print("resultdefault =orginaldatas     :   \(self.orgTemplate)")
    }

推荐阅读