FlutterFlow DropDownウィジェット Referenceとして取得する方法

FlutterFlowのDropDownウィジェットで、選択されたデータを単なる文字列ではなく、
FirebaseのDocument Referenceとして取得するのが難しいと思いました。

DropDownウィジェットのOption Value Data TypeにはReferenceはありません

どうしたらいいのか・・

これだけで数日無駄にしてしまいました・・・涙

調べるとFlutterFlowのコミュニティフォーラムやYouTubeチュートリアルでも、みなさん苦戦されていて
この問題に対する解決策が多数共有されています。

Document Referenceのパスを文字列として扱う方法や、「Backend Queryを使用する」方法、
カスタムコードで変換する方法などがよく紹介されています。

私は「カスタムコードで変換する」方法で何とか解決しました

この動画がヒントになりました!!

  1. 方法:

方法:

  1. ドロップダウンウィジェットのオプションとして、
    表示名(例:ユーザー名)と、そのユーザーのDocument Referenceのパス(例:users/ユーザーID)の両方を設定します。
  2. ドロップダウンの「Option Values」にはDocument Referenceのパス(文字列)を、「Option Labels」には表示名を設定します。
  3. ドロップダウンで項目が選択された際に実行されるアクションで、選択されたDocument Referenceのパス(文字列)を取得します。
  4. この文字列をDocument Referenceに変換するためのカスタム関数(Custom Function)を作成します。
  5. このカスタム関数を使って、取得した文字列をDocument Referenceに変換し、
    それをPage State変数やApp State変数に保存したり、直接Firestoreのフィールドに設定しました

コード

import 'package:cloud_firestore/cloud_firestore.dart';


DocumentReference getDocRefFromID(String docID) {
  /// MODIFY CODE ONLY BELOW THIS LINE

final FirebaseFirestore firestore = FirebaseFirestore.instance;
  String documentPath = "user/$docID";
  return firestore.doc(documentPath);

  /// MODIFY CODE ONLY ABOVE THIS LINE
}
上部へスクロール