2016-03-05 46 views
1

我使用AngularJs和Firebase開發了一個簡單的聊天應用程序。我已在Google應用引擎平臺上託管此應用。現在,我想按計劃(每晚)刪除包含聊天消息的Firebase數據庫。是否可以通過使用Google App Engine cron作業調用servlet來從Firebase中刪除數據?

有什麼辦法可以實現這個使用servlet,以便它可以作爲cron工作調用?謝謝。

PS:Firebase文檔僅適用於Android,我對此很陌生。 SO,專門尋找servlet代碼。

+0

提供的答案應該解決您在這篇文章中的問題。如果您同意您的問題已得到解答,請選擇該問題,以便可以將此問題視爲已解決。 – Nicholas

回答

0

從你的問題或描述中不完全清楚你需要什麼幫助。此答案假設您希望每天執行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帳戶,因此我無法測試上述內容,因此可能需要進行一些修改。

相關問題