我想更新顯示Firebase數據庫的表中的數據。AngularJS Firebase數據庫通過複選框更新字段
表中的每一行代表一個特定用戶的數據。我的目標是能夠更新用戶數據的一個字段中的數據。在這個例子中,我試圖根據複選框ng-true-value="'admin'" ng-false-value="'user'"
更改用戶角色。
如何獲取我正在編輯/更新信息的行的用戶標識並將其傳遞到更新函數中?目前代碼正在獲取當前用戶標識。
我用它更新用戶信息的功能是:
$scope.updateRole= function() {
var updated_user_info= {
role: $scope.user.role
};
var myuser = firebase.auth().currentUser;//change this part?!
DatabaseRef.ref('users/' + myuser.uid).update(updated_user_info)
.then(function() {
console.log("update success");
}).catch(function (error) {
$scope.errMsg = true;
$scope.errorMessage = error.message;
});
}
HTML視圖:
<tr ng-repeat="obj in $data">
<td data-title="'First Name'" filter="{ 'First Name': 'text' }" sortable="'firstName'">{{ obj.firstName }}</td>
<td data-title="'Last Name'" filter="{ 'Last Name': 'text' }" sortable="'lastName'">{{ obj.lastName }}</td>
<td data-title="'Role'" filter="{ 'Role': 'text' }" sortable="'role'">
<input type="checkbox" ng-model="user.role" ng-true-value="'admin'" ng-false-value="'user'" ng-click="updateRole()">
{{obj.role}}
</td>
</tr>
目前它僅更新當前用戶,並保持爲所有用戶選中的值,但不更新,只有當前用戶本身。