2016-03-01 34 views
0

我有一個包含「完成」按鈕的待辦事項列表。我想在每次用戶點擊按鈕時將時間存儲在firebase中。該按鈕啓用一段時間後,當用戶再次單擊該按鈕時,我想再次存儲時間並且不覆蓋現有時間。在我的代碼中,時間被覆蓋。每次用戶點擊一個按鈕時,在「firebase」中存儲「時間」

的index.html

<ion-list class = "list"> 
    <ion-item class = "has-header" ng-repeat="todo in data.todos" class = "item" ng-class="{purchased: todos.status == 'purchased'}"> 
    {{todo.title}} 
     <button ng-disabled="todo.stopSpam" ng-click="doneItem(todo)">Done 
     </button> 

app.js

$scope.doneItem = function(todo) { 

    todo.stopSpam = true; 
    todo.timestamp = Date(); 

    $interval(callAtInterval, 30000); 

    function callAtInterval(){ 
    todo.stopSpam = false; 
    } 

}; 

回答

1

爲了避免覆蓋現有數據,您的代碼應該要在該節點內的數據存儲每次創建新的子節點。

鑑於裁判是你的根裁判

var timestampsRef = ref.child("timestamps"); 
var newTimestampRef = timestampsRef.push(); 

newTimestampRef.set({ 
    stamp: "a timestamp" 
}); 

每個用戶按下按鈕將創建一個不同的節點名,然後加上時間戳作爲一個孩子每一次調用它。

"timestamps": { 
    "-QIUEiijasdj923498": { 
     "stamp": "a timestamp" 
    }, 
    "-Qnbnajsd093409koi": { 
     "stamp": "a timestamp" 
    } 
相關問題