【发布时间】:2017-08-07 11:28:39
【问题描述】:
我正在构建一个应用程序,允许用户扫描条形码并存储书籍信息并将它们检索到 TableView 上。书籍存储在当前用户 ID -> 书籍 -> 书籍名称 -> 标题、作者 ..etc 下。请参阅下面的 JSON 结构:-
因此,有不同名称的书籍,每次扫描新书时,都会将其添加到“书籍”下。
如何获取不同名称下所有书籍的数据?
这是代码,我试图在 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。显然,没有任何错误。路径工作正常,我正在获取数据。但是,如果您看到我的 JSON 结构,我会在每本书的标题下存储书籍。所以我不确定如何调用每本书来检索其中的数据。在这种情况下,每本书我都有一个唯一的名称。
-
例如,我不能这样做:'databaseRef.child("users").child((user?.uid)!).child("books").child(" BOOK'S NAME")' 因为书名不同。
标签: ios swift firebase firebase-realtime-database