【发布时间】:2026-02-05 01:10:01
【问题描述】:
我在 YouTube 上看到了 Firebase 的教程,展示了如何在 firestore 和 swiftui (https://www.youtube.com/watch?v=f6u3AnOKZd0) 之间获取数据。这是我复制的完全相同的代码:
import SwiftUI
import Firebase
import FirebaseFirestore
import Foundation
class BooksViewModel: ObservableObject{
@Published var books = [Book]()`
private var db = Firestore.firestore()
func fetchData(){
db.collection("books").addSnapshotListener { (querySnapshot, error) in
guard let documents = querySnapshot?.documents else{
print("No results")
return
}
self.books = documents.map { (queryDocumentSnapshot) -> Book in
let data = queryDocumentSnapshot.data()
let title = data["title"] as? String ?? ""
let author = data["author"] as? String ?? ""
let pages = data["pages"] as? Int ?? 0
return Book(title: title, author: author, numberOfPages: pages)
}
}
}
}
struct Book: Identifiable{
var id:String = UUID().uuidString
var title: String
var author: String
var numberOfPages: Int
}
struct Search: View {
@ObservedObject private var viewModel = BooksViewModel()
var body: some View {
List(viewModel.books){ book in
VStack{
Text(book.title).font(.headline)
Text(book.author).font(.subheadline)
Text("\(book.numberOfPages) pages").font(.subheadline)
}
}
}
}
问题是没有显示任何内容。 在 Firestore 中,我有“书籍”集合,在里面,对于每个自动 ID,我都有一个标题、一个作者和一个页面。 当我显示没有 Firestore 的列表时(正如他在视频开头显示的那样),它工作正常。但是,当我将它连接到 Firestore 时,它什么也没显示。但问题是它可能像“使用”一样连接,在 Firebase 的“Cloud Firestore”内,有 86 个读数、15 个记录和 8 个排除项的峰值。谁知道怎么解决?
11.0 Beta 大苏尔 12.1 Xcode
控制台上显示的内容: 2020-10-22 08:21:35.875930-0300 aplicativo[38475:1811559] 6.34.0 - [Firebase/Core][I-COR000008] 项目的 Bundle ID 与 'GoogleService-Info.plist 中的 Bundle ID 不一致',或选项中的捆绑 ID(如果您使用自定义选项)。为确保可以正确配置所有内容,您可能需要使 Bundle ID 保持一致。要继续使用此 plist 文件,您可以将应用的包标识符更改为“com.sigma2”。或者,您可以从 https://console.firebase.google.com/ 下载与您的包标识符匹配的新配置文件并替换当前的配置文件。 2020-10-22 08:21:36.176284-0300 aplicativo [38475:1811496] [] nw_protocol_get_quic_image_block_invoke dlopen libquic 失败 2020-10-22 08:21:37.083782-0300 aplicativo[38475:1811559] 6.34.0 - [Firebase/Analytics][I-ACS023007] Analytics v.60900000 已启动 2020-10-22 08:21:37.172409-0300 aplicativo[38475:1811559] 6.34.0 - [Firebase/Analytics][I-ACS023008] 要启用调试日志记录,请设置以下应用程序参数:-FIRAnalyticsDebugEnabled(请参阅“”) 2020-10-22 08:21:39.418386-0300 aplicativo[38475:1811558] 6.34.0 - [Firebase/Analytics][I-ACS800023] 没有待激活的快照。 SDK 名称:app_measurement 2020-10-22 08:21:42.157064-0300 aplicativo[38475:1811560] 6.34.0 - [Firebase/Analytics][I-ACS023012] 分析收集已启用 2020-10-22 08:21:42.157878-0300 aplicativo[38475:1811560] 6.34.0 - [Firebase/Analytics][I-ACS023220] 分析屏幕报告已启用。调用 +[FIRAnalytics logEventWithName:FIREventScreenView parameters:] 记录屏幕查看事件。要禁用自动屏幕报告,请在 Info.plist 中将标志 FirebaseAutomaticScreenReportingEnabled 设置为 NO(布尔值)
更新的控制台信息: 2020-10-22 11:18:52.062418-0300 aplicativo [49379:2031899] [] nw_protocol_get_quic_image_block_invoke dlopen libquic 失败 2020-10-22 11:18:53.463035-0300 aplicativo[49379:2031919] 6.34.0 - [Firebase/Analytics][I-ACS023007] Analytics v.60900000 已启动 2020-10-22 11:18:53.504736-0300 aplicativo[49379:2031919] 6.34.0 - [Firebase/Analytics][I-ACS023008] 要启用调试日志记录,请设置以下应用程序参数:-FIRAnalyticsDebugEnabled(请参阅“goo.gl” /RfcP7r") 2020-10-22 11:18:55.710625-0300 aplicativo[49379:2031900] 6.34.0 - [Firebase/Analytics][I-ACS800023] 没有待激活的快照。 SDK 名称:app_measurement 2020-10-22 11:19:03.453691-0300 aplicativo[49379:2031891] 6.34.0 - [Firebase/Analytics][I-ACS023012] 分析收集已启用 2020-10-22 11:19:03.556959-0300 aplicativo[49379:2031891] 6.34.0 - [Firebase/Analytics][I-ACS023220] 分析屏幕报告已启用。调用 +[FIRAnalytics logEventWithName:FIREventScreenView parameters:] 记录屏幕查看事件。要禁用自动屏幕报告,请在 Info.plist 中将标志 FirebaseAutomaticScreenReportingEnabled 设置为 NO(布尔值)
【问题讨论】:
-
当您尝试执行此操作时,控制台会打印什么?
-
尝试克隆github.com/peterfriese/bookspine 的repo(这是视频的基础),看看是否遇到同样的问题。
-
@purebreadd a 在问题中添加了它
-
Mateus,如果您能够使用我们在此处提供的帮助以及您在 GitHub 上共享的 repo 解决此问题,我建议您接受帮助您解决问题的答案之一问题,自己写一个答案,或者结束你的问题。
标签: swift firebase google-cloud-firestore swiftui