Oglądałem this video, która mówi o aktualizacjach wielościeżkowych w Firebase. Aktualizacje wielościeżkowe są świetne, ponieważ pozwalają na wywołanie metody firebaseRef.update() dwa lub więcej razy, podczas gdy mają one jedną operację atomową, wszystko lub nic.Czy istnieje coś takiego jak "Multi-Path Push" w bazie danych Firebase Real-Time?
To jest świetne, ale w mojej obecnej sytuacji nie chcę używać metody aktualizacji (). Zamiast tego chcę użyć metody FirebaseRef: push i umożliwić Firebase wygenerowanie unikalnego klucza dla mojego obiektu.
Najtrudniejsze jest to, że zdenormalizowałem moje dane, aby znajdowały się w dwóch miejscach. Naprawdę chciałbym mieć operację atomową, wszystko lub nic, która używa operacji Firebase push(), aby utworzyć unikalny klucz, a następnie zapisać obiekt z tym kluczem w 2 lub więcej różnych miejscach wewnątrz mojej bazy danych dane. Jednak składnia dla funkcji push() już używa obiektu, więc to, co chcę zrobić, nawet możliwe?
Uwaga: Innym możliwym rozwiązaniem może być użycie Firebase api jakoś wygenerować unikalny klucz klienta, a następnie wykonaj standardową aktualizację wielościeżkowego użyciem że wygenerowany klucz jako klucz do mojego obiektu jest włożona.
Na koniec zauważyłeś odpowiedź na twoje pytanie. var key = firebase.database(). Ref ('somestring'). Push(); zwróci Ci klucz bez wpisywania czegokolwiek w bazie danych bazy ogniowej. Użyj tego klucza, aby utworzyć obiekt, a następnie wywołaj aktualizację() –
Załóżmy jednak, że użytkownik opuszcza aplikację po pierwszym przejściu i przed upływem drugiego. Wtedy moje denormalizowane dane są niespójne. Chcę zrobić to wszystko w jednej operacji atomowej. – Jim
następnie użyć transakcji() jest zbudowany do tego celu. Ale ponieważ mój osobisty punkt widzenia wykorzystuje transakcje tylko wtedy, gdy jest to naprawdę konieczne. –