Arrays 从核心数据获取数据
我是Swift的新手,我开始学习核心数据,但我有一个问题。我无法从我的核心数据数据库中获取数据。 我想下载核心数据中的Firebase 由于某些原因,显示的数据来自Firebase,而不是数据库。 如何从数据库中提取数据 这是我的控制器: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
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文档。本质上,创建实体(比如用户),设置它们的属性,保存它们。但是,您需要知道如何初始化数据库、上下文等。