2017-06-06 52 views
0

我是Firebase的新用戶,在過去兩天中,我一直在試圖弄清楚如何在沒有任何成功的情況下對我的db執行簡單搜索。使用swift簡單搜索Firebase數據庫3

enter image description here

而且我想對所有的渠道進行兒童搜索。例如,我想搜索是否存在名爲Klx0N4pxsBHGVkhYuY0的頻道。我嘗試

queryEqual(toValue: "Klx0N4pxsBHGVkhYuY0") 

但沒有運氣。

非常感謝您的幫助。

回答

0

您所要做的就是觀察該路徑,如果沒有數據,則snapshot.value將爲零。

let ref = FIRDatabase.database().reference().child("channels").child("Klx0N4pxsBHGVkhYuY0") 

ref.observeSingleEvent(of: .value, with: { (snapshot) in 

    if let value = snapshot.value as? Dictionary<String,Any> { 

     // There is data, so it exists 

     print(value) 

    } else { 

     // There is no data, so it doesn't exist 
    } 
}) 
+0

你的答案它也可以。謝謝你的時間和幫助。祝你有美好的一天。 – kstefanou

0

如果你只想「搜索,如果有一個名爲Klx0N4pxsBHGVkhYuY0通道」,你可以這樣做:

let ref = FIRDatabase.database().reference().child("channels") 

ref.observeSingleEvent(of: .value, with: { (snapshot) in 
    if snapshot.hasChild("Klx0N4pxsBHGVkhYuY0") { 
     // yes, it is 
    } else { 
     // no, it isn't 
    } 
}) 

希望它能幫助。

+0

非常感謝弗拉德,你讓我的一天。希望你也有美好的一天。 – kstefanou

+0

@kstefanou很高興聽到。祝你有美好的一天:) –

+0

這不是一個實際的做法!您正在下載整個數據庫,然後搜索所有數據,這些數據在時間,Internet數據和計算能力方面都很昂貴。用我的回答,你只是在下載數據,這將節省時間和計算能力。你需要考慮哪種方法是正確的。 @kstefanou –