前提・実現したいこと
react-select のタグ選択で、自身で入力した値をfirestoreに保存したい。
問題点/エラー内容/エラー文章
FirebaseError: Function DocumentReference.set() called with invalid data. Document fields cannot begin and end with "__" (found in document Students/ドキュメントID )
SignUp.jsx const [studentSignUpSkill, setStudentSignUpSkill] = useState(""); const studentSignUpSkillValue = (value) => { setStudentSignUpSkill(value); }; const skillList = [ { value: "英検", label: "英検2級" }, { value: "秘書", label: "秘書検定" }, { value: "企業診断士", label: "中小企業診断士" }, { value: "博士号", label: "博士号" }, { value: "司法書士", label: "司法書士" }, { value: "社労士", label: "社労士" }, { value: "自動車免許", label: "普通自動車免許" }, { value: "TOEIC", label: "TOEIC800点以上" }, { value: "TOEIC", label: "TOEIC900点以上" }, ]; ~~~~~~~~~ <CReatableSelect placeholder="スキル/資格" isMulti value={studentSignUpSkill} onChange={studentSignUpSkillValue} options={skillList} />
想定している処理の流れ
①select内で情報を記述する。
②記述した内容が、エンターキーを押下することで一つのオブジェクトとして生成される。
③firestoreに内容を保存する処理で、保存される。
うまくいっている部分
・あらかじめ用意した内容に関しては、保存することができることを確認済み。
・あらかじめ用意したものに関しては複数個の情報を保存することができた。
エラー原因となり得る部分
・入力した場合、情報のオブジェクト内が、以下のようになってしまう。
オブジェクト内に、isNew:trueの記述が含まれることが原因かと思った。・
あらかじめ用意されたものを選択する場合。
option: label: "秘書検定" value: "秘書"
自分で記述して生成した場合
option: label: "ドラえもん" value: "ドラえもん" __isNew__: true
試したことや調べたこと
-firestoreのドキュメントに直接フィールドを作成し用としたところ、先頭または末尾を 2 つのアンダースコア(__)にすることはできませんと指摘されたことから、エラー箇所に関しては間違いないと考えた。
-ネット検索、公式ドキュメントを調べてみても解決には至らなかった。
#最後に
わかりにくくて申し訳ありません。
皆様のお力をお借りできたらと思います。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。