我无法更新Firestore数据库上的数据。我输入了新数据,然后单击“保存任务”按钮,但是什么也不会发生。.我不确定问题出在哪里。我的代码如下:
saveTask.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String taskName = name.getText().toString();
String taskDate = tDate.getText().toString();
String startTime = sTime.getText().toString();
String endTime = eTime.getText().toString();
String taskTag = tTag.getSelectedItem().toString();
String notes = tNotes.getText().toString();
String stat = Status.getText().toString();
userId = mFirebaseAuth.getCurrentUser().getUid();
taskRef = fStore.collection("usersData").document(userId).collection("tasks").document();
taskRef.update("taskName",taskName);
taskRef.update("taskDate",taskDate);
taskRef.update("startTime",startTime);
taskRef.update("endTime",endTime);
taskRef.update("taskTag",taskTag);
taskRef.update("notes",notes);
taskRef.update("status", stat);
}
});
打印错误吗?如果我错了,请纠正我,您有userData
的集合,其中包含带有任务的结构,您想向其中添加新任务吗?如果是这种情况,您应该像这样从userData
文档中获取它:
userRef = await fStore.collection("usersData").document(userId);
await userRef.get().then(async function(querySnapshot){
let userData = await querySnapshot.docs[0].data();
await userData.update(tasks: admin.firestore.FieldValue.arrayUnion({
taskName: taskName,
taskDate: taskDate,
startTime: startTime,
.
.
.
}));
如果仍然无法使用,请打印taskRef
以查看其是否为DocumentReference