UItextFieldから値を入力しボタンを押下するとUITabelviewがreloadDataされるようにしたいです。
CloudFirestoreのサブコレクションをDictionary型に一度代入して
そこに任意の値(例:id: 1)を追加。
全データが揃ったところで配列に格納しています。
-- 追記 -- // Dictionary型 var dic[String:Any] = [:] // Array型 var array: [[String: Any]] = [] override func viewDidLoad() { super.viewDidLoad() data() ... } func data() { let db = Firestore.firestore() db.collection("test")...getDocuments() { (querySnapshot, err) in if let err = err { print("Error getting documents: (err)") } else { for document in querySnapshot!.documents { // サブコレクション格納 self.dic = document.data() // 任意の値の加処 // コード省略しています // dic to array self.array.append(self.dic) } // コレクションビューを更新 self.table.reloadData() } // コレクションビューを更新 self.table.reloadData() }// コレクションビューを更新 self.table.reloadData() } -- 追記 -- @IBAction func addButten(_ sender: Any) { textFieldString = TextField.text! //追加ボタンを押したらフィールドを空にする TextField.text = "" let docData: [String: Any] = [ "test01": textFieldString, "test02": idString, "test03": "なし", "date": Timestamp(date: Date()), "test04": false ] db.collection("test").document(test01).collection("test03").document() .setData(docData) { error in if let error = error { print("エラーが起きました") } else { print("ドキュメントが保存されました") // コレクションビューを更新 self.table.reloadData() } // コレクションビューを更新 self.table.reloadData() } // コレクションビューを更新 self.table.reloadData() }
現在reloadDataされない状態です。
クリーンビルド済みです。
※Dictionary型からArray型への変換はこちらの事情になります。
回答1件
あなたの回答
tips
プレビュー