Поиск в базе данных Firebase - PullRequest
       17

Поиск в базе данных Firebase

0 голосов
/ 02 января 2019

Нужно найти все название: "Апельсин" в 5 / продукты / Это моя структура:

"5"
   "products"
             "1" (ShopID)
                "Drink" (Category)
                       "id111" (ID)
                              title: "Milk"
                       "id121"
                              title: "Water"
                       "id133"
                              title: "Orange juice"
                "Fruit"
                       "id2211"
                              title: "Apple"
                       "id3121"
                              title: "Mango"
                       "id5134"
                              title: "Orange"
                "Fish"
                       "id2411"
                              title: "Fish"
                       "id3221"
                              title: "Shark"
                       "id5734"
                              title: "Orange Fish"
             "2"
                 "Home"
                       "id22411"
                              title: "Orange table"
                       "id33221"
                              title: "Spoon"
                       "id45734"
                              title: "Orange socks"
             "3"
                ....

Это мой код:

let messagesRef = Database.database().reference().child("5/products/").queryOrdered(byChild: "title").queryStarting(atValue: "Orange").queryEnding(atValue: "Orange"+"\u{f8ff}")
messagesRef.observeSingleEvent(of: .value)

Можно ли найтирезультаты в одном запросе?Если я не знаю ID, Категория

Этот способ хорошо работает

Database.database().reference().child("5/products/1/Drink/").queryOrdered(byChild: "title").queryStarting(atValue: "Orange").queryEnding(atValue: "Orange"+"\u{f8ff}")

Но мне нужно найти Category и ShopID

1 Ответ

0 голосов
/ 03 января 2019

Воспользуйтесь приведенным ниже кодом, чтобы получить ссылку Orange в идентификаторах

 let ref = Database.database().reference().child("5/products")
    ref.observe(.childAdded, with: { (snapshot) in
        //print(snapshot)
        guard let dictionary = snapshot.value as? [String : AnyObject] else {
            return
        }
       //print(dictionary)
        for (key, value) in dictionary{
            //print(value)
            if let innerDict = value as? NSDictionary{
                for (k, v) in innerDict{
                    if let str:String = v as? String{
                        if str.lowercased().contains("orange"){
                            print("id : \(k)  and Category : \(key)")
                        }
                    }
                }
            }

        }
    }, withCancel: nil)
...