

UITextViewを活用してTextFieldを作成したのですが、  
そこに書かれたTextをFirestoreに格納したいです。

通常のやり方だと、格納されません。  
どうしたら良いでしょうか、すいませんがご教示ください。

[code]

    //作成した複数行のTextField
    struct MultiLineTextField: UIViewRepresentable {
        @Binding var text: String
    
        func makeCoordinator() -> Coordinator {
            MultiLineTextField.Coordinator(parent1: self)
        }
    
        func makeUIView(context: Context) -> UITextView {
            let textView = UITextView()
            textView.delegate = context.coordinator
            textView.isScrollEnabled = true
            textView.isEditable = true
            textView.isUserInteractionEnabled = true
            textView.text = "xxx"
            textView.textColor = UITraitCollection.current.userInterfaceStyle == .dark ? UIColor(displayP3Red: 0.4, green: 0.4, blue: 0.4, alpha: 1) : .lightGray
            textView.font = .systemFont(ofSize: 17)
            textView.backgroundColor = UITraitCollection.current.userInterfaceStyle == .dark ? UIColor(displayP3Red: 0.2, green: 0.2, blue: 0.2, alpha: 1) : UIColor(displayP3Red: 0.9, green: 0.9, blue: 0.9, alpha: 1)
            return textView
        }
    
        func updateUIView(_ uiView: UITextView, context: Context) {
        }
    
        class Coordinator: NSObject, UITextViewDelegate {
            var parent : MultiLineTextField
    
            init(parent1: MultiLineTextField) {
                parent = parent1
            }
    
            func textViewDidBeginEditing(_ textView: UITextView) {
                if self.parent.text == "" {
                    textView.text = ""
                    textView.textColor = .black
                }
            }
    
            internal func textViewDidEndEditing(_ textView: UITextView) {
                if self.parent.text == "" {
                    textView.text = "xxx"
                    textView.textColor = UITraitCollection.current.userInterfaceStyle == .dark ? .darkGray : .lightGray
                }
            }
        }
    }
    
    //firestoreへの格納時の処理、textがMultiLineTextFieldで取得した値
    db.collection("xxx").document("xxx").setData([..., "text": self.text,...]){(error) in
            if error != nil{
                print((error?.localizedDescription)!)
                return
            }
        }
    }
    
[/code]


CC BY-SA 4.0
2020-07-04T15:05:54.533
68276
2020-07-06T15:47:57.613
2020-07-04T16:48:55.407
19110
40929
question
firebase swiftui
複数行のText（UITextViewを活用して作成したTextFieldに入力されたText ）をFirestoreに格納したい


> nekketsuuuさん  
>  user40929と同じ人で、別アカウントの者です。  
>
> user40929としてログイン出来ず、こちらからの返答となりすいません。(また信用度が低いため、コメント追加できないためこちらに書かせていただきます)  
>
> 状況としては、Firestoreへの追加処理をすると、エラーは起きないのですが、追加する予定のFirestoreの対象フィールドにはなにも値が追加されていませんでした。(フィールド自体はできました)

よろしくお願いします。


CC BY-SA 4.0
2020-07-06T15:47:57.613
68348
2020-07-06T15:47:57.613
40389
68276
answer