我建立一個應用程序,允許用戶掃描條形碼和商店的圖書信息,並檢索他們到一個TableView中。這些書籍存儲在當前用戶ID - >書籍 - >書名 - >標題,作者..等等。見下面的JSON結構: -如何檢索Firebase Swift中不同密鑰下存儲的數據?
因此,有書有不同的名稱,每一個新的書被掃描時,它會在「圖書」補時。
我如何獲得的所有書籍的數據以不同的名字?
下面的代碼,在這裏我想在TableViewController檢索數據:
var posts = [BooksFromFirebase]()
override func viewDidLoad() {
super.viewDidLoad()
//get reference to data location
let databaseRef = Database.database().reference()
//get current user id
let user = Auth.auth().currentUser
databaseRef.child("users").child((user?.uid)!).child("books").observe(.value, with: { (snapshot) in
if let value = snapshot.value as? [String: AnyObject]{
let assetTitle = value["title"] as? String ?? ""
print("Title ",assetTitle)
let title = assetTitle
let type = "Book"
self.posts.insert(BooksFromFirebase(title: title, type: type), at: 0)
self.tableView.reloadData()
}
})
}
哪裏錯誤?嘗試打印'databaseRef.child(「users」)。child((user?.uid)!)。child(「books」)',你會得到想要的路徑嗎? – Dravidian
感謝您回覆@Dravidian。顯然,沒有任何錯誤。路徑工作正常,我正在獲取數據。但是,如果您看到我的JSON結構,我將書籍存儲在每本書的標題下。所以我不確定如何調用每本書來檢索其中的數據。在這種情況下,每本書都有一個唯一的名稱。 – Miki
例如,我不能這樣做: 'databaseRef.child( 「用戶」)子(?!(用戶.uid))子( 「書」).child( 「書的NAME」)',因爲書的名字各不相同。 – Miki