我如何在我的 firestore 中更新文档而不在代码中精确写入我想要更新的字段,因为已经通过表单到达:
假设 Angular 中的 HTML 标签已经带来了密钥和导入(要更新的那个):
HTML Tags
<form [formGroup]="importNgForm" (submit)="addUniqueImport()">
<div class="modal-body">
<div class="form-group">
<label for="key"></label>
<input disabled type="text" value='{{incomeSelected}}' name="key" class="form-control" formControlName="key" />
</div>
<div class="form-group">
<label for="import">Add amount</label>
<input type="number" name="import" class="form-control" formControlName="import" />
</div>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary">Add</button>
</div>
......more code
然后在我的 html 组件上:
some imports...
export class UserSheetBalanceComponent implements OnInit {
importNgForm: FormGroup;
constructor(
private service: Service,
private amountBuilder:FormBuilder,
) {
this.importNgForm = this.amountBuilder.group({
key:new FormControl(),
import:new FormControl(),
});
}
addUniqueImport() {
this.service.addingImport(this.importNgForm.value as addImport)
}
最后在我的服务组件上我只是尝试传递表单带来的参数:
addingImport(dataToPass: addImport) {
const path = this.docCreator
.collection('users')
.doc(this.userdata.uid)
.collection('Incomings')
.doc(this.userdata.uid);=====>Path reaching the doc to update
直到声明访问该字段所在文档的路径。但是,当尝试引用我想要通过表单 (dataToPass.key) 更新的字段的名称时,以及该字段的导入,我正在引用 (dataToPass.key) 。导入)出现错误。
path.update({dataToPass.key:dataToPass.import}) ====>doesn't work
}
问题出在关键处,假设我没有访问我的表单(dataToPass),而是直接写入要更新的字段的名称(某个名称),我确实可以工作
path.update({some name:dataToPass.import}) ======>does work
}
所以我想知道如何在不精确写入的情况下访问该字段键,而是动态地访问该字段键,以便在查询中的字段匹配后更新我的导入
提前致谢!!!!