2017-06-19 139 views
1

我遇到問題。我想要的是用斯威夫特的子鍵的值Swift - 根據子值從Firebase中選擇

例如從火力地堡中選擇數據:

{ 
    posts:{ 
    post1:{ 
     userId:10 
    }, 
    post2:{ 
     userId:11 
    }, 
    post3:{ 
     userId:10 
    },   
    } 
} 

因此,所有我需要的是一個包含用戶id獲取帖子:「10」 我試着使用來自StackOverflow的問題不同的選擇 - 但仍然沒有結果((

謝謝:)

回答

0

你可以用火力地堡的queryOrderedByChild其次queryEqualToValue如下:

let ref = FIRDatabase.database().reference().child("posts") 
    let queryRef = ref.queryOrdered(byChild: "userId").queryEqual(toValue: 10) 

然後,你可以嘗試用你平常的.childAdded,.value的等檢索值:

queryRef.observe(.childAdded, with: { (snapshot) in 

    }) 
+0

我有一個代碼 'ref.child( 「上崗」)queryOrdered(byChild:「所有者「)。queryEqual(toValue:uid) ref.observe(.childAdded,其中:{(snapshot)in let snap = snapshot.value as? NSArray 因爲我在管理單元中!{ let val = i as? [字符串:AnyObject] 打印(VAL [ 「標題」]) } })' –

+0

輸出: '可選(在野外沒有教堂) 可選(下豆腐烤雞肉) 可選(創建真棒機器人) 可選(在斯德哥爾摩市中心爆炸的牛) 無 致命錯誤:意外地發現零,同時展開可選值 我在做什麼錯?它現在獲取所有線路。只有兩行應該在那裏:( –

+0

真棒!謝謝!它的工作!!!!! –