在我的应用中,我想检查特定订单是否已存在。我正在努力解决如何进行此类查询的问题。
如何检查孩子中是否存在特定订单("订单")?例如,我想查询是否存在订单2
DB_NAME
--users
----用户名
------订单
-------- Order1
---------- OrderItem1
---------- OrderItem2
---------- OrderItem3
-------- Order2
---------- OrderItem1
---------- OrderItem2
---------- OrderItem3
-------- Order3
---------- OrderItem1
---------- OrderItem2
---------- OrderItem3
答案 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())")
}