2017-05-01 4 views
0

Ich habe diesen Code:Firebase Snapshot hat Kind gleich String

DataService.ds.MSGS_DB_REF_KEY1.queryOrdered(byChild: "livelli").observe(.value, with: { snapshot in 

     for _ in snapshot.children{ 
      if snapshot.hasChild((self.textField.text?.lowercased())!){ 
       DataService.ds.MSGS_DB_REF_LIVELLO1.queryOrdered(byChild: "livello1").observe(.value, with: { (snapshot1) in 

        self.lvls = [] 

        if let snapshot1 = snapshot1.children.allObjects as? [FIRDataSnapshot] { 
         for snap in snapshot1 { 
          if let postDict = snap.value as? [String: AnyObject] { 
          let level = Levels(levelId: snap.key, levelData: postDict) 
          self.lvls.append(level) 
         } 
        } 
       } 
       self.tableView.reloadData() 

      }) 

Was würde ich tun, um zu überprüfen ist, wenn das Kind Name, der in meinem Code in das Textfeld gleich ist, enthalten eine Wort der Zeichenkette, die ich in Textfeld schreibe. Ich habe eine Datenbank, die wie folgt strukturiert ist:

Mydata -> keywords -> keywordlist1 -> Name: "level one", Wert: "level one" (und andere Zeichenfolgen).

Wenn ich im Textfeld schreibe wie "Ich möchte ein zufälliges Level" möchte ich App das Vorhandensein des Wortes "level" im Kindnamen "level one" erkennen lassen. Aber mit meinem Code wird die Zeichenfolge nur erkannt, wenn sie gleich dem Namen in den Daten ist.

Antwort

3

Es gibt keine Möglichkeit, einen Teil des Namens eines untergeordneten Elements direkt abzufragen. Sie können alle Kinder herunterladen und dann im Client durchsuchen, aber das ist umständlich und keine gute Option. Eine bessere Option ist die Verwendung einer Cloud-Funktion, um die Datenbank vom Backend aus zu durchsuchen. Überprüfen Sie this sample und this documentation.

+0

ok Ich werde das jetzt versuchen, danke, für andere Komplikationen, könnte ich dir andere Dinge fragen? @Jen Person – cisc0

+0

Definitiv! Wenn Sie Ihre aktuelle Frage nicht bearbeiten, posten Sie einfach alle anderen Fragen separat. Ich überprüfe alle Fragen, die mit Firebase markiert sind. Wenn Sie Cloud-Funktionen noch nie zuvor verwendet haben, sehen Sie sich dieses Video an, um zu sehen, wie Sie beginnen können: https://www.youtube.com/watch?v=EvV9Vk9iOCQ&t=3s –

+0

Danke, Sie haben mir das Leben gerettet! – cisc0