Một điều tôi đang đấu tranh với một chút với Firebase (hoặc các NOSQL dbs khác, tôi đoán?) Là một thực tế là các id không phải là một phần của cơ thể hàng". Vì vậy, nếu bộ sưu tập của tôi trông giống như:Theo dõi các id trong NOSQL db (firebase)
Books
|----ldJEIF
|----Title: "A Tale of Two Cities"
|----Author: "Charles Dickens"
|----Body: "It was the best of times..."
|----2difie
|----Title: "Moby Dick"
|----Author: "Herman Melville"
|----Body: "Call me Ishmael..."
Nếu tôi lấy BooksList
, và sau đó chọn myBook = books[ldJEIF]
để làm điều gì đó với dữ liệu, myBook
không có ý tưởng mà trong danh sách nó đến từ đâu. Nếu sau này tôi muốn thêm nó vào một số UserLibrary
, ví dụ, tôi phải khử chuẩn hóa dữ liệu của mình hoặc thực hiện tra cứu ngược lại hoặc chuyển ldJEIF
thay vì đối tượng sách và liên tục tra cứu dữ liệu. Tui bỏ lỡ điều gì vậy? Cách thực hành tốt nhất để giải quyết vấn đề này là gì?
Cảm ơn câu trả lời kỹ lưỡng. – sprugman
Giữ một ảnh chụp xung quanh thực sự là một điều hoàn toàn an toàn/chính xác để làm. Các ảnh chụp nhanh là không thay đổi, vì vậy chúng sẽ không bị thay đổi từ bên dưới bạn ngay cả khi dữ liệu cơ bản được thay đổi. Mỗi ảnh chụp nhanh có hàm .ref() mà bạn có thể sử dụng để có được Tham chiếu Firebase mới cho dữ liệu đó. –
Nếu tham chiếu firebase là tham chiếu firebase-Util -> Có một "lỗi" thú vị với giải pháp này (var data = snapshot.val(); data.id = snapshot.name();). Cuộc gọi lại được kích hoạt nhiều lần hơn. – Casero