如何在Firebase中对数据进行排序和过滤?

问题描述 投票:0回答:2

我想进行查询以获取包含子密钥bookingsTimeStampDateAndTime节点下的所有子节点,并且子节点的值在1519912278和1520689878之间。由于某种原因,即使在时间键TimeStampDateAndTime的值中它返回null也是如此。下面显示的JSON对象在此范围内1519912278 - 1520689878。

let ref = dbRef.child("Cleaners").child(self.uidOfTextField!).child("bookings").queryOrdered(byChild: "TimeStampDateAndTime").queryStarting(atValue: 1519912278).queryEnding(atValue: 1520689878)

finalRef.observeSingleEvent(of: .value, with: { (snapshot: FIRDataSnapshot) in         
    print("snapshot.value is  line 81 is \(snapshot.value)") //prints (<null>)
}

"Cleaners" : {
    "05MSPgkP1ddhFqXDRjIB4npGEPV2" : {
        "bookings" : {
             "392239680" : {
                  "BookingAmount" : “10”,
                  "BookingCompleted" : "false",
                  "TimeStampDateAndTime" : "1520526600",
           },
       }
   },
 }
swift firebase firebase-realtime-database
2个回答
1
投票

它给你null因为它不存在,你需要做这样的事情:

queryOrdered(byChild: "TimeStampDateAndTime").queryStarting(atValue: 152).queryEnding(atValue: 152\uf8ff)

这将给你所有TimeStampDateAndTime在开始时有152


1
投票

“TimeStampDateAndTime”在您的情况下是一个字符串,因此按它排序将不会给出预期的结果。您可以将其类型更改为Int。

© www.soinside.com 2019 - 2024. All rights reserved.