Ich verwende eine Back-End-App in App Engine (noch im freien Plan) und unterstützt mobile Client-Apps in einer Firebase Realtime Database-Konfiguration. Wenn ein Client eine Änderung an der Datenbank vornimmt, muss mein Back-End diese Änderung überprüfen und möglicherweise einige Ausgaben berechnen.Firebase: Wie weckt App Engine, wenn Client db ändert?
Ich könnte meine App Engine Instanz wach sitzen lassen und ständig auf Firebase Ports warten und auf Änderungen in der Datenbank warten, aber das würde meine Instanz rund um die Uhr wach halten und den Lastenausgleich nicht unterstützen.
Bevor ich zu Firebase wechselte, weckten meine Clients das Back-End manuell auf, indem sie eine REST-Anforderung der gewünschten Änderung schickten. Nun, da Firebase es den Clients erlaubt, Änderungen direkt vorzunehmen, hoffte ich, dass sie keine manuelle Anfrage stellen müssen. Ich könnte weiterhin eine Anfrage von dem Client erzeugen, aber diese Lösung wird nicht robust sein, da es den Server nicht informieren würde, wenn die Anfrage aus irgendeinem Grund nicht durchkommt und der Benutzer den Client abgeschaltet hat, bevor es erfolgreich war um die Anfrage zu senden. Firebase hat einen eigenen Mechanismus, um Änderungen beizubehalten, aber meine Anfrage würde einen ähnlichen Mechanismus benötigen. Ich hoffe, dass es eine einfachere Lösung gibt.
Gibt es eine Möglichkeit, dass Firebase automatisch eine Anfrage erstellt und meine App Engine aufweckt, wenn die Datenbank geändert wird?
Hallo, muss es in Echtzeit sein? Oder wäre es beispielsweise akzeptabel, alle 4 Stunden einen Hörer auszulösen? –
Echtzeit. Der Benutzer erwartet das Berechnungsergebnis innerhalb von Sekunden. – jazzgil
Ok, also, was ich im Sinn hatte (https://cloud.google.com/solutions/mobile/firebase-app-engine-android-studio), müsste eine Instanz 24/7 laufen lassen (wegen manueller Skalierung) und wird daher nicht mit einem freien Plan passen. Dies steht im Einklang mit der Antwort von Dan Cornilescu unten. –