2016-08-14 60 views
-1

我被告知要安排雲中的任務在Firebase中對我的實時數據庫執行任務,我需要使用Server SDK。Firebase Server SDK - 如何安排任務?

比方說,我在將數據保存到使用此代碼的火力地堡數據庫:

DatabaseReference usersRef = ref.child("users"); 

Map<String, User> users = new HashMap<String, User>(); 
users.put("alanisawesome", new User("June 23, 1912", "Alan Turing")); 
users.put("gracehop", new User("December 9, 1906", "Grace Hopper")); 

usersRef.setValue(users); 

但我要上傳以此爲明天任務。我的意思是,這將節省TOMORROW而不是代碼運行的時間。

我有一個Calendar準備:

Calendar cal = Calendar.getInstance(); 
cal.add(DAY_OF_MONTH,1); //This could be wrong, but I'm just telling you I have a Calendar ready, so ignore any errors in this code 

所以,我怎樣才能節省使用火力地堡服務器SDK任務?文檔沒有提供明確的答案,因爲我能看到的唯一事情就是像實時數據庫一樣保存數據。

+0

目前無法運行代碼以在Firebase服務器上運行。請參閱http://stackoverflow.com/questions/31340542/how-to-write-custom-code-logic-when-using-firebase –

回答

0

當前有沒有方式爲您在Firebase的服務器上運行您的代碼。有2個選項供您2解決這個問題:

  1. 您可以使用Firebase Queue和Node.js的運行代碼
  2. 您可以使用諸如Microsoft Azure我還沒有嘗試這樣做又一個不同的庫,我不知道它是否提供作業調度爲Android

然而,火力地堡正在研究一種叫做火力地堡觸發,這將解決我們的問題,但現在還沒有沒有證實發布發佈日期。

1

如果您有第三方服務器(使用Firebase SDK,服務器SDK),則可以輪詢所有保存的數據,並將調用TImerService或CRON JOB,使其將列表保留到Firebase實時數據庫。

這取決於您的服務器實現,但上面指出的排隊實現將在您的方案中起作用。

可以在此StackOverflow page上找到CRON作業調用Web服務(在您的案例中,將所有隊列項目保留到Firebase的作業)的示例。對於TimerService,你可以參考它的documentation

快樂編碼!

+0

謝謝,但你的鏈接是在另一臺計算機languge。我非常確定,Firebase本身可以選擇以前曾標記的用戶。嘗試+1。 –

0

創建一個廣播接收器並在清單中定義它。 覆蓋onRecieve並將您的firebase代碼放在那裏。 然後在清單中定義接收器。 使用Receiver創建一個pendingIntent,並使用setExact()方法將其設置在AlarmManager中,並傳入pendingIntent。

+0

尚未將其標記爲android? – Linxy