来自2个节点的Firebase查询

时间:2017-02-21 13:24:33

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

cards

    cars
    -- idcars
        -- type:
        -- age:
        -- user: iduser

    users
    -- iduser
     -- username
     -- usermail


    ads
    -- iduser
     -- ads1 : idcars
     -- ads2 : idcars

通过这种结构,如何为用户检索所有广告以及他们自己的数据?

示例:

ads1: 
type: golf
age:2

我对Firebase来说是全新的

3 个答案:

答案 0 :(得分:0)

这应该是获取经过身份验证的用户所需的内容,然后您可以使用此模型来检索整个ads分支过滤,以便让每个人都广告详细信息(如果需要)

let userID = FIRAuth.auth()?.currentUser?.uid
ref.child("ads").child(userID!).observeSingleEvent(of: .value, with: { (snapshot) in

  // Get user value
  let value = snapshot.value as? NSDictionary // This gets the whole ad branch with all the users ad data
  let adsValue = value?["ads1"] as? String ?? "" // This is the specific value of 'ads1' node

  // ...
  }) { (error) in
    print(error.localizedDescription)
}

答案 1 :(得分:0)

也许是这样,

获取用户ID,然后将其放入{{1}}

{{1}}

答案 2 :(得分:0)

这将需要两次读取操作,一次针对用户,一种针对其广告。查看Firebase documentation for reading dataquerying lists

如果您在执行此工作时遇到问题,请发布minimal code that reproduces the problem