Ios Swift Firebase-基于UID的项目数组

Ios Swift Firebase-基于UID的项目数组,ios,json,swift,firebase,Ios,Json,Swift,Firebase,我有以下数据结构 以下简要概述了此处每个节点的含义: 订单:我在这里跟踪客户的所有订单 aaccdc2e-1095-4b09-8397-fc0f51f437f5:是客户UID吗 XBQDIaMo:是订单编号(每个订单都有唯一的字母数字编号)。在每个订单号下都是图像中可以看到的所有属性 我要做的是由当前用户(与上面第二个项目符号匹配的相同UID)查询此结构,然后按照dueDate字符串对结果进行排序/排序,如图中的属性所示 如何做到这一点 下面是我现在用来尝试查询的代码,但它没有打印出任何快

我有以下数据结构

以下简要概述了此处每个节点的含义:

  • 订单:我在这里跟踪客户的所有订单
  • aaccdc2e-1095-4b09-8397-fc0f51f437f5:是客户UID吗
  • XBQDIaMo:是订单编号(每个订单都有唯一的字母数字编号)。在每个订单号下都是图像中可以看到的所有属性
我要做的是由当前用户(与上面第二个项目符号匹配的相同UID)查询此结构,然后按照dueDate字符串对结果进行排序/排序,如图中的属性所示

如何做到这一点

下面是我现在用来尝试查询的代码,但它没有打印出任何快照,这表明我做错了

let reference = Firebase(url:"https://something.firebaseio.com/orders/")
        reference.queryEqualToValue(reference.authData.uid).observeEventType(.Value, withBlock: { snapshot in
            if (snapshot.exists()) {
                print(snapshot.value)
            }else{
                print("No Snapshot?!")
            }
        })

QueryByValue将查看Firebase引用中所有键/值对的值。您案例中的uid是一个键,而不是一个值。它的值将是快照中它下面的对象的字典,它不会查询它,因为该字典不等于uid。相反,只需使用uid附加引用的路径,然后调用
。observeEventType

 let reference = Firebase(url:"https://something.firebaseio.com/orders/")

 //This will make your url point to the current users uid within the orders endpoint  

 reference.childByAppendingPath("\(reference.authUser.uid)/") 

 reference.observeEventType(.Value, withBlock: { snapshot in
                        if (snapshot.exists()) {
                            print(snapshot.value)
                            //You should have a dictionary here now. Do a sort by valueForKey

                        }else{
                            print("No Snapshot?!")
                        }
                    })

QueryByValue将查看Firebase引用中所有键/值对的值。您案例中的uid是一个键,而不是一个值。它的值将是快照中它下面的对象的字典,它不会查询它,因为该字典不等于uid。相反,只需使用uid附加引用的路径,然后调用
。observeEventType

 let reference = Firebase(url:"https://something.firebaseio.com/orders/")

 //This will make your url point to the current users uid within the orders endpoint  

 reference.childByAppendingPath("\(reference.authUser.uid)/") 

 reference.observeEventType(.Value, withBlock: { snapshot in
                        if (snapshot.exists()) {
                            print(snapshot.value)
                            //You should have a dictionary here now. Do a sort by valueForKey

                        }else{
                            print("No Snapshot?!")
                        }
                    })

您是否尝试过
if snapshot.value!=是否改为零?我在使用firebase时从未使用过snapshot.exists。我只是检查了firebase查询,因为我以前很少使用它。我认为您使用的
queryEqualToValue()
是错误的。我将很快发布答案。您是否尝试过
if snapshot.value!=是否改为零?我在使用firebase时从未使用过snapshot.exists。我只是检查了firebase查询,因为我以前很少使用它。我认为您使用的
queryEqualToValue()
是错误的。我很快会发布一个答案。我会试试这个,然后再给你回复。Firebase在早上大部分时间都不在,我会尝试一下,然后给你回复。消防基地整个上午都在关闭