簡體   English   中英

Swift Firebase:如何在列表中添加新問題?

[英]Swift Firebase : How to add on new questions to the list?

目前這個應用程序有一個textfield ,當你在鍵盤上按回車鍵時,它會在屏幕上顯示實時數據,但它會刪除上一個問題。 我的問題是我怎樣才能不刪除以前的問題,而只是將這個新問題添加到列表中。 太感謝了!

import UIKit
import FirebaseFirestore

class ViewController: UIViewController, UITextFieldDelegate {
    
    let database = Firestore.firestore()
    
    private let label: UILabel = {
        let label = UILabel()
        label.textAlignment = .center
        label.numberOfLines = 0
        return label
        
    }()
    
    private let field: UITextField = {
        let field = UITextField()
        field.placeholder = "enter text.."
        field.layer.borderWidth = 1
        field.layer.borderColor = UIColor.black.cgColor
        return field
    }()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        view.addSubview(label)
        view.addSubview(field)
        field.delegate = self

        let docRef = database.document("ios/ex")
        docRef.addSnapshotListener {[weak self] snapshot, error in
            guard let data = snapshot?.data(), error == nil else {
                return
            }
            
            guard let text = data["text"] as? String else {
                return
            }
            
            DispatchQueue.main.async {
                self?.label.text = text
            }
        }
    }
    
    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        field.frame = CGRect(x: 1, y: view.safeAreaInsets.top+10, width: view.frame.size.width-20, height: 50)
        label.frame = CGRect(x: 1, y: view.safeAreaInsets.top+10+60, width: view.frame.size.width-20, height: 100)
    }
    
    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        if let text = textField.text, !text.isEmpty {
            savedData(text: text)
        }
        return true
    }
    
    func savedData(text: String){
        let docRef = database.document("ios/ex")
        docRef.setData(["text": text])
    }
    
}

將數組保存在“文本”鍵中,而不僅僅是字符串,並使用名為 FieldValue.arrayUnion('your new value') 的 Firebase 方法更新數組

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM