我正在尝试将值推送到我的firebase-database中。当我尝试推送值时,它在控制台中给出了一个错误(错误:Reference.push失败:第一个参数包含属性中的函数)。我在firebase上查了一下,发现这是因为推动了一个功能,但我根本没有推动任何功能。但我觉得这可能是因为datetimepicker。需要帮助!
MY JS
<div class="page-header">
<h1>MANAGE DOWNTIME </h1>
</div>
<div data-ng-app="downtime">
<div class="row">
<div class="col-xs-12">
<div class="form-group col-xs-6 col-xs-offset-3" id="equipList">
<label for="selectequ">Select Equipment</label>
<select class="form-control" id="selectequ" data-ng-model="equipment"
>
<option data-ng-repeat="eq in allEquipments" >{{eq}}</option>
</select>
{{equipment}}
</div>
<div class="form-group col-xs-6 col-sm-6 col-md-6 col-lg-6 col-xs-offset-3" id="Type">
<label for="searchType">Search by Type:</label>
<select class="form-control" id="searchType" data-ng-model="type">
<option value="" disabled="" selected="" style="display: none">Select type of maintenance</option>
<option>Corrective Maintenance</option>
<option>Preventive Maintenance</option>
<option>Standby</option>
</select>
</div>
{{type}}
</div>
</div>
<div class="row">
<div class="form-group col-xs-6 col-xs-offset-3">
<label for="date">Start of Downtime</label>
<!-- <input type="datetime-local" id="datetimepicker1" class="form-control" placeholder="Day, Month, Year" data-ng-model="startDT"/>-->
<input type="text" class="form-control" placeholder="Day, Month, Year" data-ng-model="startDT" customzdatetime />
</div>
{{startDT}}
<div class="form-group col-xs-6 col-xs-offset-3">
<label for="date">End of Downtime</label>
<input type="text" class="form-control" placeholder="Day, Month, Year" data-ng-model="endDT" customzdatetime/>
{{endDT}}
</div>
</div>
<div class="row">
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6" id="central">
<a class="btn cd-add-to-cart cd-add-to-cart:hover cd-add-to-cart:active" role="button" data-ng-click="manageDowntime()">MANAGE <span class="glyphicon glyphicon-tasks"></span></a>
</div>
</div>
</div>
我的HTML
Strinf filePath = "";
答案 0 :(得分:2)
firebase不接受日期作为数据类型,尝试将它们转换为字符串或数字,然后尝试将其推入firebase。我希望你的问题是$ scope.startDT,因为它包含一些函数,你试图直接使用它,这就是它抛出错误的原因,尝试将它们转换为字符串或数字,然后尝试推送。
firebase.database().ref('downtime/' + $scope.equipment + '/downtime').push({
equipment: $scope.equipment,
type : $scope.type,
start: new Date($scope.startDT).toLocaleString(),
end: new Date($scope.endDT).toLocaleString()
or
start: new Date($scope.startDT).getTime(), //this will get you unix timestamp as number
end: new Date($scope.endDT).getTime()
});