Я думаю, это должно сработать для вас. Используя этот метод, вы сможете вызывать пользователя uid
из любого места
Установить пакет провайдера (https://pub.dev/packages/provider#-installing-tab-), добавив его в ваши зависимости pubspec.yaml.
pubspec.yaml
dependencies:
provider: ^3.1.0+1
Затем создайте новый файл dart с именем auth.dart (вы можете назвать его как угодно ...
Внутри этого файла создайте новый класс с именем Auth, например,this:
import 'package:firebase_auth/firebase_auth.dart';
class Auth {
String userId;
final FirebaseAuth _auth = FirebaseAuth.instance;
String get userId {
return _userId;
}
void getUserID() async{
FirebaseUser user = await _auth.currentUser();
_userId = user.uid;
}
}
Затем в вашем файле main.dart
1017 *
импортируйте пакет поставщика, добавив этот импорт:
import 'package:provider/provider.dart';
, а также в файл main.dart
Прямо перед возвратом вашего MaterialApp (return MaterialApp...)
Оберните его новым виджетом, подобным следующему:
Consumer<Auth>(
builder: (ctx, auth, _) => MaterialApp(...),),
Теперь внутри любого виджета, где вы хотите вызвать идентификатор пользователя, вы можетесделай это ..
@override
Widget build(BuildContext context) {
final auth = Provider.of<Auth>(context);
return Container(
child: Text(auth.uid);
);
}