【React Native】「react-native-firebase」でCloud Firestoreのデータを取得できない

本日判明した「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 からデータを取得できない時の対処方法についてでした。
とりあえず、まずはエラーを確認しましょう。
ご参考になれば幸いです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG