Riverpodを使用して、別ファイルにあるプロバイダーの値を取得したいと思っています
Flutter
1import 'package:flutter/material.dart'; 2import 'package:firebase_auth/firebase_auth.dart'; 3import 'package:cloud_firestore/cloud_firestore.dart'; 4import 'package:flutter_riverpod/flutter_riverpod.dart'; 5import 'package:sample/login/login_page.dart'; 6 7final userProvider = ChangeNotifierProvider((ref) => UserModel()); 8final authUserProvider = Provider((ref) => FirebaseAuthUserProvider); 9 10class UserModel extends ChangeNotifier { 11 bool isLoading = false; 12 String appBarTitle = ''; 13 User? currentUser; 14 late DocumentSnapshot currentUserDoc; 15 16 // watch(userProvider)が呼ばれた時に発火する 17 UserModel() { 18 init(); 19 } 20 21 Future init() async { 22 startLoading(); 23 setCurrentUser(); 24 await setCurrentUserDoc(); 25 endLoading(); 26 } 27 28 void startLoading() { 29 isLoading = true; 30 // 変更をWidgetに通知する 31 notifyListeners(); 32 } 33 34 void setCurrentUser() { 35 currentUser = watch(authUserProvider); 36 } 37 38 void setAppBarTitle() { 39 appBarTitle = currentUserDoc['name']; 40 } 41 42 void endLoading() { 43 isLoading = false; 44 // 変更をWidgetに通知する 45 notifyListeners(); 46 } 47 48 Future setCurrentUserDoc() async { 49 try { 50 await FirebaseFirestore.instance 51 .collection('users') 52 .where('uid', isEqualTo: currentUser!.uid) 53 .limit(1) 54 .get() 55 .then((querySnapshot) { 56 querySnapshot.docs.forEach((DocumentSnapshot documentSnapshot) { 57 currentUserDoc = documentSnapshot; 58 }); 59 }); 60 } catch (e) { 61 debugPrint(e.toString()); 62 } 63 } 64} 65
この部分で別のファイルにあるプロバイダーから取得したいと考えています
Flutter
1currentUser = watch(authUserProvider);
公式ドキュメントを読んでも記載されていませんでしたので、この方法では難しいのでしょうか。
もし、詳しい方がいたら教えて頂けるとありがたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。