Jedną rzeczą, z którą walczę trochę z Firebase (lub innymi bazami danych NOSQL, zgaduję?) Jest fakt, że identyfikatory nie są częścią ciała rząd". Więc jeśli moja kolekcja wygląda następująco:Śledzenie identyfikatorów w 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..."
Gdybym odzyskać BooksList
, a następnie wybierz myBook = books[ldJEIF]
coś zrobić z danymi, myBook
nie ma pojęcia, gdzie na liście pochodzi. Jeśli później chcę go dodać na przykład do UserLibrary
, muszę albo zdenormalizować moje dane, albo przeprowadzić odwrotne wyszukiwanie, albo przepuścić ldJEIF
wokół obiektu książki i stale wyszukiwać dane. Czy czegoś brakuje? Jaki jest najlepszy sposób postępowania z tym problemem?
Dzięki za dokładną odpowiedź. – sprugman
Prowadzenie migawki jest właściwie całkowicie bezpieczne/poprawne. Migawki są niezmienne, więc nie ulegną zmianie, nawet jeśli podstawowe dane zostaną zmienione. Każda migawka ma funkcję .ref(), której można użyć do uzyskania nowej referencji Firebase dla tych danych. –
Jeśli odwołanie do bazy Firebase-Util -> Istnieje interesujący "błąd" z tym rozwiązaniem (var data = snapshot.val(); data.id = snapshot.name();). Oddzwanianie jest wyzwalane więcej razy. – Casero