本日判明した「react-native-firebase」ライブラリを使って Cloud Firestore のデータを取得するときの仕様についてです。
React Native アプリで、Cloud Firestore からデータを取得する際に、where in
を使っていたのですが、あるアカウントでのみ、データが取得できないという不具合が発生しました。
それで調査したところ、where in
で渡す配列データは、最大 10 件までという制限があるということを今回初めて知りました…!
使っていたアカウントに紐づいているデータ数が少なかったため、発覚が遅くなってしまいました…。
なお、その時のエラーメッセージがこちら。
Error: firebase.firestore().collection().where(_, _, *) ‘value’ is invalid. ‘in’ filters support a maximum of 10 elements in the value array.
「‘in’フィルターは、値配列で最大10個の要素をサポートします」とあります。
で、こちらの対処法は、where in
に渡す配列データを 10件以内にすれば解決しました。
配列データを 10件ずつに区切り、for()
文などのループ文でまわしてデータ取得を行ったところ、問題なくデータが取得できました!
なお、配列データを 10件ずつ区切る方法については、改めて別の記事でまとめる予定です。
以上、React Native アプリで Cloud Firestore からデータを取得できない時の対処方法についてでした。
とりあえず、まずはエラーを確認しましょう。
ご参考になれば幸いです。