从Swift中的Firebase获取后访问最终数组

时间:2017-05-07 14:33:44

标签: arrays firebase swift3 firebase-realtime-database

我正在尝试从swift 3中的firebase获取关系数据并将其存储在数组中。它确实以我想要的方式获取所有内容,但我无法访问最终的数组。 我已经尝试过在网上找到的所有内容,但无法使其正常运行。

我正在提取3个子节点,因此每次获取它都会将其附加到数组中。

输出结果为:

success
success
success

我只想让它打印一次“成功”。

这是我的代码:

// Here the child with the relations is loaded
func fetchFollowingSection1IDs() {
    guard let userID = FIRAuth.auth()?.currentUser?.uid else { return }

    let reference = FIRDatabase.database().reference().child("interests").child("relations").child("userAndSection1").child(userID)
    reference.observe(.childAdded, with: { (snapshot) in

        // It's supposed to fetch the details of Section1 according to the childs from the relations (they are the IDs of Section1)
        self.fetchSection1(section1ID: snapshot.key, completionHandler: { success in
            guard success == true else {
                return
            }

            print("success")
            self.collectionView?.reloadData()

        })

    }, withCancel: nil)
}

// Here it gets the details from Firebase
func fetchSection1(section1ID: String, completionHandler: @escaping (Bool) -> ()) {

    let ref = FIRDatabase.database().reference().child("interests").child("details").child("country").child("section1").child(section1ID)
    ref.observeSingleEvent(of: .value, with: { (snapshot) in

        self.collectionView?.refreshControl?.endRefreshing()

        if let dictionary = snapshot.value as? [String: AnyObject] {
            let section1 = Section1New(section1ID: section1ID, dictionary: dictionary)
            self.section1s.append(section1)
        }

        completionHandler(true)

    }) { (err) in
        print("Failed to fetch section1s:", err)
    }   
}

关系的我的Firebase结构如下所示:

"interests" : {
    "relations" : {
      "userAndSection1" : {
         "7fQvYMAO4yeVbb5gq1kEPTdR3XI3" : { // this is the user ID
            "-KjS8r7Pbf6V2f0D1V9r" : true,  // these are the IDs for Section1
            "-KjS8tQdJbnZ7cXsNPm3" : true,
            "-KjS8unhAoqOcfJB2IXh" : true
    },
}

所有内容都正确加载并填充我的集合视图。只是问题是它是错误的Section1数,因为三重附加到数组。

感谢您的回答!

0 个答案:

没有答案