Firestoreでnon-empty stringエラー
FirestoreでコレクションのReferenceから、id指定してドキュメントを取得する際、下記のようなエラーが出る場合があります。
FirebaseError: Function CollectionReference.doc() requires its first argument to be of type non-empty string, but it was: 406
これはドキュメントのidを数値にしている場合などに起こります。
doc()メソッドに指定するidはstring型でなくてはならないため、数値を指定してしまうと上記のようなエラーが出ます。
例えば下のようなデータ構造だった場合、usersドキュメントのidは文字列の”1″で指定しないとエラーになります。
ドキュメントidを文字列で指定して取得
javascriptでドキュメントを取得するコード例は下記です。
const db = firebase.firestore()
let id = String(id)
db.collection("users").doc(id).get()
.then(querySnapshot => {
console.log('success')
})
.catch((error) => {
console.error('error: ', error)
})
このように、idを渡す前にString()メソッドに通して置くことで、もし数値が渡されてきたとしてもエラーとならないようにしておくのが望ましいかと思われます。
firestoreのドキュメントオブジェクトについての詳しい仕様は、下の公式APIリファレンスを参照してください。
使えるプロパティやメソッドについても詳しく書かれています。
404 | ページが見つかりません | Firebase
コメント