如何为 Swift 配置 Firebase 并读出数据
Posted
技术标签:
【中文标题】如何为 Swift 配置 Firebase 并读出数据【英文标题】:How to configure Firebase for Swift and read data out 【发布时间】:2018-11-28 09:48:18 【问题描述】:我已经为我的 Swift ios 应用安装了 Firebase
在我的 AppDelegate 文件中,我像这样导入 Firebase:
import Firebase
import FirebaseDatabase
并初始化它:
FirebaseApp.configure()
之后我检查数据库是否连接,它首先打印出“未连接”,然后是“已连接”,所以我认为它是成功的
var ref:DatabaseReference!
var databaseHandle:DatabaseHandle!
override func viewDidLoad()
let connectedRef = Database.database().reference(withPath: ".info/connected")
connectedRef.observe(.value, with: snapshot in
if snapshot.value as? Bool ?? false
print("Connected")
else
print("Not connected")
)
但后来我尝试访问我的数据,但它什么也没给我!
ref = Database.database().reference()
databaseHandle = ref.child("Meal").observe(.childAdded, with: (snapshot) in
print(snapshot.value as Any)
这是来自控制台 Firebase 的快照
我也可以切换到实时数据库,那里没有数据,但我可以允许读/写访问(我都设置为 true)
"rules":
".read": true,
".write": true
可能是什么问题,所以我无法打印出我的数据?....
【问题讨论】:
【参考方案1】:问题是您尝试使用 Firebase 方法访问 Firestore。
“但后来我尝试访问我的数据,但它什么也没给我!”它什么也没给您,因为 Firebase 中没有数据,您的所有数据都在 Firestore 中。
请参阅 Firestore 指南:https://firebase.google.com/docs/firestore/quickstart
这一点来了解 Firebase 和 Firestore 之间的区别: https://firebase.google.com/docs/database/rtdb-vs-firestore
【讨论】:
【参考方案2】:访问 Firebase 实时数据库和 Firestore 数据是有区别的
您可以访问您的 Cloud Firestore 数据,如下所示
在 ViewDidLoad 中
let db = Firestore.firestore()
let ref = db.collection("Meal").document("\(myRiderUID!)")
db.collection("Meal").getDocuments() (querySnapshot, err) in
if let err = err
print("Error getting documents: \(err)")
else
for document in querySnapshot!.documents
print("\(document.documentID) => \(document.data())")
【讨论】:
以上是关于如何为 Swift 配置 Firebase 并读出数据的主要内容,如果未能解决你的问题,请参考以下文章
如何为风味维度组合配置 Firebase App Distribution?
如何为 Firebase 数据库序列化我的 User 类并修复此错误?
如何为 Firebase 取消部署 Cloud Functions?