我使用AngularJs和Firebase開發了一個簡單的聊天應用程序。我已在Google應用引擎平臺上託管此應用。現在,我想按計劃(每晚)刪除包含聊天消息的Firebase數據庫。是否可以通過使用Google App Engine cron作業調用servlet來從Firebase中刪除數據?
有什麼辦法可以實現這個使用servlet,以便它可以作爲cron工作調用?謝謝。
PS:Firebase文檔僅適用於Android,我對此很陌生。 SO,專門尋找servlet代碼。
我使用AngularJs和Firebase開發了一個簡單的聊天應用程序。我已在Google應用引擎平臺上託管此應用。現在,我想按計劃(每晚)刪除包含聊天消息的Firebase數據庫。是否可以通過使用Google App Engine cron作業調用servlet來從Firebase中刪除數據?
有什麼辦法可以實現這個使用servlet,以便它可以作爲cron工作調用?謝謝。
PS:Firebase文檔僅適用於Android,我對此很陌生。 SO,專門尋找servlet代碼。
從你的問題或描述中不完全清楚你需要什麼幫助。此答案假設您希望每天執行cron作業,將請求發送到App Engine處理程序,然後該處理程序會從Firebase數據庫中刪除數據。
從文檔中,Firebase有一個REST API。因此,可以使用標準HTTP請求(GET
,PUT
,POST
,PATCH
,DELETE
)添加,刪除和更新數據。任何能夠發出HTTP請求的應用程序都可以在properly authenticated and authorized時更改數據。
鑑於您的要求使用App Engine上cron作業和的Java servlet,我建議如下:
定義cron作業,在您的cron.xml
<cron>
<url>/firebase_cleanup</url>
<description>Delete all chat messages of the day</description>
<schedule>every day 23:00</schedule>
</cron>
發出請求到一個特定的URL
部署一個處理此類請求的servlet,並向Firebase發出相應的HTTP請求。在你的情況下,它應該發出DELETE
請求。這可以使用HttpURLConnection
完成。
URL url = new URL("firebase-url-formatted-for-delete-request");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setRequestMethod("DELETE");
int responseCode = connection.getResponseCode();
// Act upon responseCode accordingly
注意上面的servlet代碼不包括你需要發出DELETE
請求進行認證。這將需要您的Firebase祕密或generated token。由於我沒有Firebase帳戶,因此我無法測試上述內容,因此可能需要進行一些修改。
提供的答案應該解決您在這篇文章中的問題。如果您同意您的問題已得到解答,請選擇該問題,以便可以將此問題視爲已解決。 – Nicholas