如何使用Swift3查询/检查FIrebase中的特定键/值对

时间:2016-10-07 21:39:13

标签: ios firebase

在我的应用中,我想检查特定订单是否已存在。我正在努力解决如何进行此类查询的问题。

如何检查孩子中是否存在特定订单("订单")?例如,我想查询是否存在订单2

DB_NAME
--users
----用户名
------订单
-------- Order1
---------- OrderItem1
---------- OrderItem2
---------- OrderItem3
-------- Order2
---------- OrderItem1
---------- OrderItem2
---------- OrderItem3
-------- Order3
---------- OrderItem1
---------- OrderItem2
---------- OrderItem3

1 个答案:

答案 0 :(得分:1)

你需要三件事:

首先,提到那个孩子。有几种方法可以获得,但我发现以下格式易于阅读:

FIRDatabase.database()
    .reference()
    .child("users")
    .child("userID")
    .child("Orders")
    .child("Order2")

其次,该孩子的价值为FIRDataSnapshot。我们通过观察"事件"来获得价值。类型为value。查看observeSingleEventOfType:withBlock:以获取最简单的方法。

第三,评估我们从观察者那里得到的FIRDataSnapshot,看看实际值是多少。如果您只想知道它是否存在,exists方法非常有用。

总而言之,我们得到以下结论:

FIRDatabase.database()
    .reference()
    .child("users")
    .child("userID")
    .child("Orders")
    .child("Order2")
    .observeSingleEvent(of: .value) { (snapshot) in
        print("Exists: \(snapshot.exists())")
    }