簡體   English   中英

Firebase數據庫圖

[英]Firebase database diagram

我正在嘗試做一個示例應用程序,其中有一些用戶,然后我有另一個名為產品的表,每個產品都分配給一個用戶我正在創建此圖,但我不確定它是否正確

Users
     |
     |--------user1_id
     |         | 
     |         |--name : "user1"
     |         
     |          
     |
     |---------user2_id
               | 
               |--name : "user2"
                

然后我有產品

Products     
             |--------product1_id
             |         | 
             |         |--image: "any_value"
             |          --name:  "any_value"
             |         
             |
             |---------product2_id
                       | 
                       |--image: "any_value"
                       |--name:  "any_value"

問題是我不確定如何將該產品分配給用戶,問題是我想先創建 firebase(如果可能的話手動創建)然后再創建應用程序,因為我記得很久以前我有通過代碼創建產品和用戶。

所以問題是,我是否需要另一個有 productid + userid 的表?

演示

有 4 個用戶 -Bob -Annie -Perl -Kuy

有 4 個產品 -Prod1 -Prod2 -Prod3 -Prod4

Prod1 來自 Bob,Prod2 來自 Annie,Prod3 來自 Perl,Prod4 來自 Kuy。

如果您需要將產品分配給用戶,則只需將用戶的 UID 添加為產品 object 中的一個字段。因此您的架構應如下所示:

db-root
 |
 --- users
 |     |
 |     --- user1_id
 |          |
 |          --- name: "user1"
 |
 --- products
       |
       --- product1_id
            |
            --- image: "any_value"
            |
            --- name: "any_value"
            |
            --- uid: "user1_id" //👈

現在要獲取與 user1 對應的產品,您必須執行如下查詢:

val db = Firebase.database.reference
val productsRef = db.child("products")
val queryByUid = productsRef.orderByChild("uid").equalTo("user1_id")
queryByUid.get().addOnCompleteListener {
    if (it.isSuccessful) {
        val snapshot = it.result
        for (productSnapshot in snapshot.children) {
            val productName = productSnapshot.child("name").getValue(String::class.java)
            Log.d("TAG", productName)
        }
    } else {
        Log.d("TAG", error.getMessage())
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM