React 入力フォームの表示に関して

実現したいこと

React+TypeScriptの入力フォーム部分で躓いております。
実現したいのは、firebaseの情報を表示→更新があればusers/uidに上書き
なのですが、空欄にすると
users/uid/name
に書き込もうとしてエラーになってしまいます。
nameを埋めても、次のemailで同じ現象が起こります。

また、returnのvalueでfirebaseのデータを表示しているのですが、
onChangeでこのデータをうまく反映させることができません。

お知恵を拝借できないでしょうか?

発生している問題・エラーメッセージ

message:'update failed: values argument contains undefined in property 'users.qcGHug5uXeeFwjhv26EeISLYpE03.name''

該当のソースコード

const handleSubmit = (event: React.FormEvent<HTMLFormElement>) => { event.preventDefault(); try { const uid = user.loginUser?.uid; const db = getDatabase(); if (image) { uploadBytes(imageRef, image).then(() => { getDownloadURL(imageRef).then(async (url) => { await update(dbRef(db, "users/" + uid), { name,    email, }); }); }); } catch (err) { console.log(err); setError(true); } }; . . . return( <TextField margin="normal" required fullWidth id="name" label="ユーザー名" name="name" autoComplete="name" autoFocus value={name ? name : profile ? profile.nickname : ""} onChange={(e) => setName(e.target.value)} />

コメントを投稿

0 コメント