查询Firebase数据库Swift



我一直在尝试为我的数据库创建一些查询,但没有成功。这是第一次处理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
        }
})

然后,对收藏夹的参考进行同样的操作!

最新更新