arrays - 从核心数据中获取数据

标签 arrays swift core-data firebase firebase-realtime-database

我是 Swift 的新手,正在开始学习 Core Data,但我遇到了一个问题。我无法从我的 Core Data 数据库中获取数据。 我想在核心数据中使用 Firebase 下载 出于某种原因,数据显示来自 Firebase 而不是来自数据库。 如何从数据库中提取数据?

这是我的 Controller :

    class InfoProfileViewController: UIViewController {

    @IBOutlet weak var imageProfile: UIImageView!

    @IBOutlet weak var nickProfile: UILabel!

    @IBOutlet weak var emailProfile: UILabel!

    @IBOutlet weak var numberProfile: UILabel!

    var userData: UserData?

    var managedObjextContext:NSManagedObjectContext!

    var infoProfile = [User]()

    override func viewDidLoad() {
        super.viewDidLoad()
        self.userData = UserData(user: (FIRAuth.auth()?.currentUser)!)
        managedObjextContext = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
        showAllUsers()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

   private func loadData(){
        let presentRequest:NSFetchRequest<User> = User.fetchRequest()

        do {
            infoProfile = try managedObjextContext.fetch(presentRequest)
            print()

        }catch {
            print("Could not load data from database \(error.localizedDescription)")
        }
    }

    private func showAllUsers() {
        FIRDatabase.database().reference().child(UserData.DRIVERS_LOCATION_KEY).observeSingleEvent(of: FIRDataEventType.value, with: { (snapshot) in

            let userItem = User(context: self.managedObjextContext)

            if self.emailProfile.text != ""{

                userItem.name = (self.userData?.nick)!
                userItem.number = (self.userData?.number)!
                userItem.avataURL = (self.userData?.avatarUrl)!
                userItem.email = FIRAuth.auth()?.currentUser?.email!

                do {
                    try self.managedObjextContext.save()
                    self.loadData()
                    print("Good save")
                }catch {
                    print("Could not save data \(error.localizedDescription)")
                }
            }
       //this my problem    
            do {
                for profil in self.infoProfile{
                    self.emailProfile.text = profil.email
                    print(profil.email as Any)
                    self.nickProfile.text = profil.name
                    self.numberProfile.text = profil.number
                }
            }

        })
    }
}

我的模型: enter image description here

最佳答案

Firebase 不只是填充您的 Core Data 数据库——您必须自己完成。

您可能想要研究更自动化的 Firebase 离线功能(并且不使用 CoreData):https://www.firebase.com/docs/ios/guide/offline-capabilities.html

关于arrays - 从核心数据中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42841410/

相关文章:

将 IP 或 MAC 地址从字符串转换为字节数组(Arduino 或 C)

ios - 如何为 Firebase Firestore 创建 DocumentSnapshots 以进行测试?

ios - 将 AVPlayerItem 与 Swift 中的新 AVPlayer 相关联?

ios - 我应该如何在 CoreData 中建模键/值对?

ios - UIActivityIndi​​catorView核心数据后台上下文获取

python - 使用两个轴排序约束对三维 numpy 数组进行排序

javascript - 在 POST 正文中发送一个数组

javascript - 不计算 array.length 中的空值

swift - 无法从 Firestore 数据库加载分段控制 TableView 中的数据

database - csv 到核心数据