使用Redux和FireBase时,无法运行UpdateDoc函数

irtuqstp  于 2022-11-12  发布在  其他
关注(0)|答案(1)|浏览(119)

PersonalSlice.js

export const updatePersonal = createAsyncThunk("personal/updatePersonal", async (id, {getState})=>{
    const personalDoc = doc(db, "Personal", id)
    await updateDoc(personalDoc, getState().personal.updatePersonal );
});

Main.js

const updateName = useSelector((state) => state.personal.updatePersonal.name);

const handleUpdateNameChange = (e) => {
        dispatch(changeUpdatePersonalName(e.currentTarget.value))
    }

const handleUpdateSubmit = (e) => {
        e.preventDefault();
        dispatch(updatePersonal({updateName , updateSurname, updateBirthday, updateStartDate, updateDepartment, updatePhone, updateMail}))
    }

 <Form onSubmit={handleUpdateSubmit}>
                        <p className="text-center" style={{ color: "#39ace7" }}>İsim</p>
                        <Form.Control 
                        size = "sm"
                            type="text"
                            name="updatePersonal"
                            onChange={handleUpdateNameChange}
                            value={updateName}
                            required
                            autoFocus
                        />

我无法将表单中需要更新的数据发送到FireBase。我的错误很可能出在参数上。

zpf6vheq

zpf6vheq1#

如果你正在开始一个新的项目和/或不需要把你的Firebase数据加载到redux中,你可能想在尝试react-redux-firebase之前先给予。参考上面的函数调用,如果profile对象包含一个键或一系列键作为参数,你可以用来自firebase上另一个位置的匹配值填充这些参数。
设定组态如下:

userProfile: 'users', // where profiles are stored in database
  profileParamsToPopulate: [
    'contacts:users'
  ]
}

在配置文件中生成已填充的联系人参数:

displayName: 'ABC',
  email: 'abc@xyz.com',
  contacts: [
    {
      email: 'efg@xyz.com',
      displayName: 'EFG'
    },
     {
      email: 'pqr@xyz.com',
      displayName: 'PQR
    }
  ]
}

请查看此处的链接以了解参数调用用法和相关问题Update Data in FirebaseUpdate function in Firebase以供参考。

相关问题