Arrays 从核心数据获取数据

Arrays 从核心数据获取数据,arrays,swift,core-data,firebase,firebase-realtime-database,Arrays,Swift,Core Data,Firebase,Firebase Realtime Database,我是Swift的新手,我开始学习核心数据,但我有一个问题。我无法从我的核心数据数据库中获取数据。 我想下载核心数据中的Firebase 由于某些原因,显示的数据来自Firebase,而不是数据库。 如何从数据库中提取数据 这是我的控制器: class InfoProfileViewController: UIViewController { @IBOutlet weak var imageProfile: UIImageView! @IBOutlet weak var

我是Swift的新手,我开始学习核心数据,但我有一个问题。我无法从我的核心数据数据库中获取数据。 我想下载核心数据中的Firebase 由于某些原因,显示的数据来自Firebase,而不是数据库。 如何从数据库中提取数据

这是我的控制器:

    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
                }
            }

        })
    }
}
类InfoProfileViewController:UIViewController{
@IBVAR imageProfile:UIImageView!
@IBVAR nickProfile:UILabel!
@IBMOutlet弱var电子邮件配置文件:UILabel!
@IBVAR弱var编号配置文件:UILabel!
var userData:userData?
var managedObjextContext:NSManagedObjectContext!
var infoProfile=[用户]()
重写func viewDidLoad(){
super.viewDidLoad()
self.userData=userData(用户:(FIRAuth.auth()?.currentUser)!)
managedObjextContext=(UIApplication.shared.delegate为!AppDelegate)。persistentContainer.viewContext
showAllUsers()
}
重写函数didReceiveMemoryWarning(){
超级。我收到了记忆警告()
}
私有函数loadData(){
let presentRequest:NSFetchRequest=User.fetchRequest()
做{
infoProfile=try managedObjextContext.fetch(presentRequest)
打印()
}抓住{
打印(“无法从数据库\(错误。localizedDescription)”加载数据)
}
}
私人func showAllUsers(){
FIRDatabase.database().reference().child(UserData.DRIVERS_LOCATION_KEY)。observeSingleEvent(of:FIRDataEventType.value,其中:{(快照)位于
让userItem=User(上下文:self.managedObjextContext)
如果self.emailProfile.text!“”{
userItem.name=(self.userData?.nick)!
userItem.number=(self.userData?.number)!
userItem.avataURL=(self.userData?.avatarUrl)!
userItem.email=FIRAuth.auth()?.currentUser?.email!
做{
尝试self.managedObjextContext.save()
self.loadData()
打印(“良好保存”)
}抓住{
打印(“无法保存数据\(错误。localizedDescription)”)
}
}
//这是我的问题
做{
对于self.infoProfile中的profil{
self.emailProfile.text=profile.email
打印(profil.email,如有)
self.nickProfile.text=profile.name
self.numberProfile.text=profile.number
}
}
})
}
}
我的模型:

Firebase不仅仅是填充核心数据数据库,还必须自己填充


您可能希望了解Firebase的脱机功能,这些功能更自动化(并且不使用CoreData):

Firebase不仅仅填充您的核心数据数据库,您必须自己完成


您可能希望了解Firebase的脱机功能,这些功能更自动化(并且不使用CoreData):

i如何填充Core Data db?这里不容易解释——您应该阅读CoreData文档。本质上,创建实体(比如用户),设置它们的属性,保存它们。但是,您需要知道如何初始化数据库、上下文等。i如何填充核心数据数据库?这里不容易解释——您应该阅读CoreData文档。本质上,创建实体(比如用户),设置它们的属性,保存它们。但是,您需要知道如何初始化数据库、上下文等。