Próbuję tylko funkcji Cloud dla Firebase, aby przenieść moich pracowników do funkcji chmurowych. Dodałem prostą funkcję, aby dodać ostatni zaktualizowany znacznik czasu, ilekroć utworzę nowy węzeł pod danym ref. Funkcja wygląda następująco:Funkcje chmury dla Firebase wielokrotnie wywoływane
var functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.setLastUpdatedTimestamp = functions.database.ref('/nodes/{nodeId}')
.onWrite(event => {
const original = event.data.val();
console.log('Adding lastUpdatedTimestamp to node ', original.name);
return event.data.ref.child('lastUpdatedAtFromFC').set(Date.now());
});
Zainstalowałem tę funkcję chmury i dodałem tylko jeden węzeł z mojej aplikacji. Poszedłem do pulpitu funkcji Firebase Functions i widziałem, że funkcja została wywołana 169 razy i nie mam pojęcia dlaczego. Kiedy patrzę na logi, widzę dzienniki takie jak dołączanie funkcji do wszystkich poprzednich węzłów.
Czy jest tak, że onWrite
zachowałoby się w stylu child_added
i uruchomił także funkcję dla wszystkich istniejących obiektów?
Czy ta czynność zostanie powtórzona za każdym razem, gdy zmienię i ponownie uruchomię funkcję?
Spodziewałem się, że uruchomi się tylko raz dla nowo dodanego węzła.
Sprawdź odpowiedzi poniżej –