Swift Firebase - Сохранение ключевых слов - как сохранить ключевые слова с соответствующими идентификаторами ключей - PullRequest
0 голосов
/ 18 июня 2019

Я работаю над созданием поиска по ключевым словам.Первый код «Создание дочернего элемента со всеми созданными здесь ключевыми словами» сохраняет то, что мне бы хотелось, чтобы каждому ключевому слову был назначен «ключ» (первая картинка).Тем не менее, для второй части кода, где я сохраняю «значения» «поста», я хочу сохранить ключевые слова, которые пишутся в посте, как дочерние «ключевые слова», причем каждому ключевому слову назначается ключ.Вторая часть кода сохраняет ключевые слова (вторая картинка).

Проблема в том, что, когда я сохраняю свои «значения» (второй фрагмент кода), как я могу задать для сохраняемых ключевых слов совпадающие «ключи» вместо нулей и единиц.

How I want the keywords saved

How keywords save when saving a

Создание ребенка со всеми созданными здесь ключевыми словами / Сохранение какЯ хочу

let caption = self.postCaption.text

let hashtag = caption?.split{$0 == " "}.map(String.init)

    for item in hashtag! {
        if item.contains("#") {
            self.keywords.append(item)
            print(self.keywords)

            Database.database().reference().child("Keywords").childByAutoId().setValue(item)

        } else {
            print("There are no keywords for this post")
        }
    }

Сохранение ключевых слов из заголовка сообщения здесь, чтобы "опубликовать" как ребенок / не сохранить, как я хочу

        photoRef.child("\(imageName)").putData(data!, metadata: nil) { (metaData,error) in
        if let error = error {
            print("there was an error")
            print(error.localizedDescription)
            return
        } else {
            // store downloadURL
            photoRef.child("\(imageName)").downloadURL(completion: {(url, error) in
                if error != nil {
                    print(error!.localizedDescription)
                    return
                }

                let downloadURL = url?.absoluteString

                let values: Dictionary<String, Any> = ["Keywords":self.keywords, "onesignal":self.loggedInUserData?["onesignal"] as! String,"employeeName":self.loggedInUserData?["name"] as! String,"employeeEmail":self.loggedInUserData?["email"] as! String,"uid": uid, "caption": caption ?? "", "download_url": downloadURL, "timestamp": Int(Date().timeIntervalSince1970), "businessName":self.otherUser?["businessName"] as! String, "businessStreet":self.otherUser?["businessStreet"] as! String, "businessCity":self.otherUser?["businessCity"] as! String, "businessState":self.otherUser?["businessState"] as! String, "businessZIP":self.otherUser?["businessZIP"] as! String, "businessLatitude":self.otherUser?["businessLatitude"] as! String, "businessLongitude":self.otherUser?["businessLongitude"] as! String, "imageID": imageName, "postID": postID, "businessUID":self.otherUser?["uid"] as! String]

                // store downloadURL at database
                let databaseRef = Database.database().reference()
                let path = databaseRef.child("Businesses").child(self.otherUser?["uid"] as! String).child("posts_requests").childByAutoId()

                path.setValue(values) { (error, ref) -> Void in
                    if error != nil {
                        print("error saving post in db")
                    } else {
                        // reset caption field
                        self.postCaption.text = ""
                        // reset placeholder image
                        self.imageView.image = UIImage(named: "filterPlaceholder")
                        MBProgressHUD.hide(for: self.view, animated: true)
                        let viewConrolller = self.storyboard?.instantiateViewController(withIdentifier: "Employee Profile") as! UITabBarController
                        self.present(viewConrolller, animated: true, completion: nil)
                    }
                }
            })
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...