我一直在尝试为我的数据库创建一些查询,但没有成功。这是第一次处理firebase中的查询并发现它们有些混乱。
我使用实时数据库
我的数据库看起来像这样:
-> users
->profile
->uid1
->email : "some@email.com"
->name : "some_name"
->favourite
->id1
->title : "some_title"
->date : "some_date"
->id : "id1"
->id2
->title : "some_title"
->date : "some_date"
->id : "id2"
->uid2
->email : "some@email.com"
->name : "some_name"
->favourite
->id1
->title : "some_title"
->date : "some_date"
->id : "id1"
->id2
->title : "some_title"
->date : "some_date"
->id : "id2"
我一直在尝试进行的查询:
- 检查特定的UID是否已经在数据库中。
- 检查数据库中是否已经在已知的UID的数据库中检查。
有什么想法如何执行这些查询?
取决于您是否正在使用实时数据库或firestore。但是,由于您想进行查询,所以我建议使用Firestore,您可以这样实施:
// Create a path where you want the query to search
let storageReference = Firestore.firestore().collection("users/profile")
let query = storageReference.whereField("uid", isEqualTo: givenUID )
query.getDocuments { (snapshot, error) in
if let snapshot = snapshot {
for document in snapshot.documents {
let data = document.data()
}
}
}
在实时数据库中,您不能使用查询,但是可以这样实现,并查看文档是否可用:
let databaseRef = Database.database().reference(withPath: "users/profile/givenUID")
databaseRef.observeSingleEvent(of: .value, with: { (snapshot) in
if snapshot.exists() {
// UID is in the database
} else {
// UID not found
}
})
然后,对收藏夹的参考进行同样的操作!