无法在Firestore上更新数据

问题描述 投票:0回答:1

我无法更新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);
        }
    });
android google-cloud-firestore updating
1个回答
0
投票

打印错误吗?如果我错了,请纠正我,您有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

© www.soinside.com 2019 - 2024. All rights reserved.