【问题标题】:Acessing Firebase Child Value访问 Firebase 子值
【发布时间】:2017-09-24 15:13:15
【问题描述】:

我需要在 UID 之后访问每个孩子:

Json2

我需要访问 +vvvv 值。并将这些值放入我的数组中,以便 tableView 单元格加载所有值*。

只需要帮助如何在调用 firebase 时获得这些值。

例如:

+message_view
   +UID
      +value1
      +value2
      +value3

我需要访问这些值并将它们放入我的 tableView 单元格中。

 override func viewDidLoad() {
        super.viewDidLoad()

        let userID = FIRAuth.auth()?.currentUser?.uid

        if let userId = userID {
            ref.child("message_view").child(userId).observeSingleEvent(of: .value, with: {(snapshot) in

            let snapDict = snapshot.value as? NSDictionary




            //Assign array values
            self.messageDataArray.insert(postStruct(message: theValueIwant), at: 0)


            //self.tableView.reloadData()


        })

【问题讨论】:

  • 这些值有键吗?如果是这样,他们的关键是什么
  • key是什么意思?
  • 编程新手抱歉。
  • 键对于关系数据库来说是绝对关键的。这是“父”行和“子”行之间的关系。说真的,它几乎是任何数据库的 基本概念......如果不理解它,您就无法知道 (a) 什么是“主键”,更不用说您的“vvvv”行是什么了。对不起,如果这听起来很冷 - 但在这里很难提供帮助。搜索“关系数据库”、“主键”和“规范化”等术语。只要有时间,你就会找到答案。

标签: ios swift firebase swift3 firebase-realtime-database


【解决方案1】:

假设您的 UID 下的值是字符串,您可以执行以下操作。如果它们不是字符串,只需更改数据数组的类型并转换为正确的类型即可。

override func viewDidLoad() {
    super.viewDidLoad()

    let userID = FIRAuth.auth()?.currentUser?.uid

    if let userId = userID {
        ref.child("message_view").child(userId)
           .observeSingleEvent(of: .value, 
                               with: {(snapshot) in
            var dataArray = [String]()
            for child in snapshot.children {
                let childSnapshot = child as! FIRDataSnapshot
                dataArray.append(child.value as! String)
            }

            //do anything with dataArray
        })
    }
}

for child in snapshot.children 循环运行完成后,您将拥有 UID 的所有子项作为一个数组,并且可以对它们做任何您想做的事情。

【讨论】:

  • 感谢您的回复。但是我需要访问所有值*,而不仅仅是 vvvv 与此工作?
  • 我不需要 vvv 中的值,我需要 +UID 中的所有值
  • 好的,更改代码以访问 UID 中的所有值。这只是一个小改动。
  • 了解您的 UID 下的值的类型很重要。我的代码假定值是字符串,但如果它们不是字符串,您需要更改此代码以处理实际值。
猜你喜欢
  • 1970-01-01
  • 2015-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-29
  • 1970-01-01
  • 2020-12-12
  • 1970-01-01
相关资源
最近更新 更多