运行我的应用程序后,我在终端中获得以下输出。该应用程序不会崩溃。我到底应该把这段代码放在哪里?究竟是做什么的?
2018-08-16 09:45:05.414410-0400 Yubi [2652:1608362] 4.13.0-[Firebase / Firestore] [I-FST000001]存储在Firestore中的系统Date对象的行为将更改并且您的应用可能会崩溃。要隐藏此警告并确保您的应用程序不会中断,您需要在调用任何其他Cloud Firestore方法之前向您的应用程序添加以下代码:
let db = Firestore.firestore()let settings = db.settings settings.areTimestampsInSnapshotsEnabled = true db.settings =设置
进行此更改后,Cloud Firestore中存储的时间戳将作为Firebase时间戳对象而不是作为系统日期对象被读回。因此,您还需要更新期望日期的代码,而不是期望时间戳的代码。例如:
//旧:让日期:日期= documentSnapshot.get(“ created_at”)为!日期//新:让时间戳:时间戳= documentSnapshot.get(“ created_at”)为!时间戳记日期:Date = timestamp.dateValue()
启用新行为时,请审核Date的所有现有用法。在将来的版本中,该行为将更改为新行为,因此,如果不执行这些步骤,则您的应用可能会崩溃。
目前我正在保存存储在firebase数据库中的图像的url.但是我在网址之前得到了可选字.如下所示.
"可选(HTTPS:URL.HERE)"
以下是保存发生的代码块:
if let imageData = UIImageJPEGRepresentation(image, 0.8) {
let metadata = storageRef //.child("poop/")
let uploadTask = metadata.putData(imageData, metadata: nil) { (metadata, error) in
guard let metadata = metadata else {
// Uh-oh, an error occurred!
return
}
// You can also access to download URL after upload.
storageRef.downloadURL { (url, error) in
guard let downloadURL = url else {
// Uh-oh, an error occurred!
return
}
let imgURL = url
//database integration
let ref = Database.database().reference()
let usersRef …
Run Code Online (Sandbox Code Playgroud)