![](/img/trans.png)
[英]Firebase Swift: queryEqualToValue by childKey is not working
[英]Append Firebase data to an array using queryEqualToValue in Swift
我有一個關於將Firebase數據附加到Swift ios中的數組的問題。 當我使用queryEqualToValue
為超鏈接中給出的數據運行此代碼時,它提供了queryCount
具有的元素數。 但是,我希望將所有元素轉換為數組。
例如,當我運行kısıt(3)
,我希望在Sesgrup = 3
情況下獲得所有HHtype
值。 並且,將這些元素存儲在一個數組中。 你能幫幫我嗎?
我有如下數據:
{
"1400001" : {
"HHtype" : 3,
"Sesgrup" : 4,
"lg_Et harcaması" : 0,
"lg_Total Harcama" : 3.11
},
"1400002" : {
"HHtype" : 1,
"Sesgrup" : 4,
"lg_Et harcaması" : 1.2,
"lg_Total Harcama" : 3.15
},
"1400004" : {
"HHtype" : 3,
"Sesgrup" : 4,
"lg_Et harcaması" : 1.18,
"lg_Total Harcama" : 3.06
},
"1400005" : {
"HHtype" : 4,
"Sesgrup" : 3,
"lg_Et harcaması" : 2.21,
"lg_Total Harcama" : 3.74
},
....... (9000unit)
最后答案的代碼:
func kısıt(sesNotoSet: UInt){
var rootRef: FIRDatabaseReference!
var haneRef: FIRDatabaseReference!
var numbersArray = [Int] ()
self.sesNo = sesNotoSet
rootRef = FIRDatabase.database().reference()
haneRef = rootRef.child("SES2014")
var queryCount : UInt = sesNotoSet
haneRef.queryOrderedByChild("Sesgrup").queryEqualToValue(queryCount).observeEventType(.ChildAdded, withBlock: { (snapshot) in
print(snapshot)
if let HHtypeDict = snapshot.value! as? [String:AnyObject]{
for each in HHtypeDict{
numbersArray.append(each.1["HHtype"] as! Int)
}
queryCount -= 1
if queryCount <= 0 {
print(numbersArray)
}
}
})
}
給定錯誤: fatal error: unexpectedly found nil while unwrapping an Optional value
和print(snapshot)
fatal error: unexpectedly found nil while unwrapping an Optional value
為:
Snap (1400005) {
HHtype = 4;
Sesgrup = 3;
"lg_Et harcamas\U0131" = "2.21";
"lg_Total Harcama" = "3.74";
}
但是,快照應該有425個這樣的元素
嘗試這個 :-
func kısıt(sesNotoSet: UInt){
var rootRef: FIRDatabaseReference!
var haneRef: FIRDatabaseReference!
var numbersArray = [Int] ()
self.sesNo = sesNotoSet
rootRef = FIRDatabase.database().reference()
haneRef = rootRef.child("SES2014")
var queryCount : UInt = sesNotoSet
haneRef.queryOrderedByChild("Sesgrup").queryEqualToValue(queryCount).observeEventType(.ChildAdded, withBlock: { (snapshot) in
if let HHtypeDict = snapshot.value! as? [String:AnyObject]{
for each in HHtypeDict{
numbersArray.append(each.1["HHtype"] as! Int)
}
queryCount -= 1
if queryCount <= 0 {
print(numbersArray)
}
}
})
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.