【Firestore】FirebaseError: Function …type non-empty stringのエラーが出る場合

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リファレンスを参照してください。

使えるプロパティやメソッドについても詳しく書かれています。

https://firebase.google.com/docs/reference/js/firebase.firestore.DocumentReference?hl=ja

未経験、異業種からIT業界に転身。フロントエンジニア。主にJavascript(React.js)をつかったWEBアプリ開発にたずさわる。
お仕事のご依頼はこちらから → genpsp10@gmail.com

psp7をフォロー
プログラミング
psp7をフォロー
ハトらぼ

コメント