実現したいこと
TypeScriptでFireBaseの認証機能のみを使用するためにバックエンドに送るためのIDトークンを取得したいです。
発生したエラー
Object is possibly 'null'.ts(2531) [Ln 28, Col 9]
該当のソースコード
signup.tsx
1import * as React from 'react' 2import type { FormEvent } from 'react' 3import axios from 'axios' 4import Router from 'next/router' 5import firebase from '@firebase/app-compat' 6 7const theme = createTheme() 8 9// eslint-disable-next-line react-hooks/rules-of-hooks 10const router = Router 11const userMail = { 12 key: 'userData', 13 default: '', 14} 15//usestateでindivdata 16 17//ボタンが押されたときの処理 18const handleSubmit = async (e: FormEvent<HTMLFormElement>) => { 19 e.preventDefault() 20 21 //--------user情報をdbに登録 22 const userToDb = async () => { 23 axios 24 .post('http://localhost:8080/data', indivData) 25 .then(() => { 26 console.log(indivData) 27 console.log('postの成功。') 28 firebase 29 .auth() 30 .currentUser.getIdToken(/* forceRefresh */ true) 31 .then(function (idToken) { 32 console.log(idToken) 33 // Send token to your backend via HTTPS 34 // ... 35 }) 36 .catch(function (error) { 37 // Handle error 38 }) 39 router.push('/') 40 }) 41 .catch((err) => { 42 console.log('err:', 'エラーだよ') 43 }) 44 } 45 46 //----------formのデータを取り出す 47 const data = new FormData(e.currentTarget) 48 49 const indivData = { 50 mail: data.get('email'), 51 password: data.get('password'), 52 name: data.get('lastName'), 53 familly: data.get('firstName'), 54 } 55 56 userToDb() 57}
試したこと
①28行目に演算子を追加firebase!
②27行目にエラーを無視する旨を追加
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
どちらでも変わらなかったです。
回答1件