firestore上传文件:不支持的字段值:自定义File对象

时间:2018-07-07 11:34:48

标签: javascript reactjs firebase google-cloud-firestore

我正在尝试在Firestore中上传文件,并且以下代码正在运行:

 export const ticketEdit = values => {
  return async (dispatch, getState, { getFirebase, getFirestore }) => {
    const firestore = getFirestore();

    // delete file
    const file = values.file && values.file;
    delete values.file;

    try {
      // uploadFile
      if (file) await dispatch(ticketUploadFile(file, ticketId));

      // notification
      toastr.success(i18n.t("Success", i18n.t("The ticket is updated")));

    } catch (e) {
      console.log(e);
    }
  };
};

但是,如果我要删除要删除的文件的行

// delete file
const file = values.file && values.file;
delete values.file; 

在这样的try catch语句中:

 export const ticketEdit = values => {
  return async (dispatch, getState, { getFirebase, getFirestore }) => {
    const firestore = getFirestore();
    try {
      // delete file
      const file = values.file && values.file;
      delete values.file;
      if (file) await dispatch(ticketUploadFile(file, ticketId));

      // notification
      toastr.success(i18n.t("Success", i18n.t("The ticket is updated")));

    } catch (e) {
      console.log(e);
    }
  };
};

我收到错误

  

不支持的字段值:自定义File对象。

,我想知道为什么。谢谢!

1 个答案:

答案 0 :(得分:0)

问题不是try catch语句,而是我试图在删除文件之前更新值。

经验教训:在更新文档之前先删除文件。