【FlutterFlow】ListViewのフィルタリングでNullのモノを除けない

FlutterFlowでアプリを作っていますが、Listviewで値が入っていないものを除くことが出来ずに困っています。
どのように対応されているかアドバイスいただけるとありがたいです。

#現状
以下のようにusers documentをList Viewで表示すると、画像の無いユーザーも表示されます。
image

#実施したいこと
画像のあるユーザーだけListViewで表示する。今回だと3件だけ画像が入っているのでそのユーザーだけListViewで表示される。

問題

Users documentでphoto_urlがnullのモノをリストから除いて表示したいのですが、うまく実装できません。
ListViewのデータは以下の図のような設定を行っています。

#実施したこと
・Query Type配下のIgnore Empty Filter Values、Filter on Null Valuesなどの設定を変更してもうまく動作しませんでした。(一つも表示されなくなります)
・custom Actionやcustom functionを使ってUser documentからphoto_urlが入っているものだけ、page stateに保存してそれを表示しようかと試しましたが、それもうまく動作していません。(ただ、このやり方でうまくいっても面倒なのでシンプルにNull以外を取得できる方法が良いと思っています)

ドキュメントとして、存在はしているが、一部の値がNullの場合に、そのドキュメントをスキップするということですよね?

おそらくですが、現状は、カスタムウィジェットで、スキップを書くしかないと思います。

Flutter で List から Null 値をスキップする方法(android - How to skip Null value from List<dynamic> in flutter - Stack Overflow)

非表示だけで良いなら、Conditionalを使う方法もありますが、
ドキュメントは存在しているので、以下のような感じになります

一応、書いてて思ったのが、一般的には、イメージURLの場合は、デフォルトイメージが設定されていて、何もない場合には、アノニマスが表示される。。っていうのが、一番簡単ではないかなとは書いてて思いました。

「いいね!」 1

@tsubasa
ありがとうございます。
カスタムウィジェットでスキップを書くしかないのですね。承知しました。
頂いた情報で実装してみたいと思います。

イメージURLの場合はデフォルトを表示するのはご指摘の通りかと思います。
イメージURL以外も同様の状況でしたので、イメージURLとして質問をさせて頂きましたが、混乱させてしまいました。申し訳ございません。

「いいね!」 1

お力になれず、恐縮です、がんばってくださいませ~。

「いいね!」 1

@tsubasa
簡単な対応方法を見つけました。
昨日の4周年イベントで @kinari からnullとemptyの話を聞いて試してみるとそれらしく動作しました。
設定したときの想定動作とは異なりましたが、それらしく表示させることは出来ました。

<ケース1>
Nullの値をリスト表示しない方法
■前提:Nullの値はデータベース上、値が以下のようにphoto_url自体が無い
image
■ListViewのQuery Collectionの設定
Combine Textで""の値を指定すると対象のcollectionがNullものを抽出してくれます。


※emptyを除く、という意図で設定しましたが、結果としてはNull(photo_urlが無い)ものを除いて表示されます。

<ケース2>
Emptyの値のリストだけを指定して表示する
■前提:emtyの値はデータベース上、値が以下のようになっています。photo_urlはあるが値が""になっている。
image
■ListViewのQuery Collectionの設定
以下のようにCombine Textの条件で何も設定しない場合はemptyとなっているリストをフィルタリングしてくれます。

Nullとemptyの指定が逆の方がわかりやすいのですが、とりあえずこれで動作はします。

「いいね!」 1

なるほど、””をEmptyとしているのですね。勉強になりました。投稿もありがとうございます。

「いいね!」 1