# #firebase #flutter #flutter-getx
Вопрос:
При использовании GetxController в классе и использовании Rx для получения пользователя FirebaseUser мне отображается ошибка, в которой отсутствует позиционный аргумент
class AuthController extends GetxController {
FirebaseAuth _auth = FirebaseAuth.instance;
Rx<User> _firebaseUser = Rx<User>();
User get user => _firebaseUser.value;
Здесь, на этом Rx<Пользователь>()<Пользователь>, который из пакета:firebase_auth/firebase_auth.dart, я получаю ошибку :
ожидается 1 позиционный аргумент(ы), но найдено 0. Попробуйте добавить отсутствующие аргументы.dartnot_enough_positional_arguments
После запуска эмулятора я получаю эту более подробную ошибку :
lib/ядро/контроллеры/auth_controller.dart:9:36: Ошибка: Слишком мало позиционных аргументов: требуется 1, задано 0. Rx _firebaseUser = Rx();
../../../snap/flutter/common/flutter/.pub-cache/hosted/pub.dartlang.org/get-4.1.3/lib/get_rx/src/rx_types/rx_core/rx_impl.dart:324:3: Контекст: Нашел этого кандидата, но аргументы не совпадают. Rx(T начальный) : супер(начальный);
Я не могу найти то, что я должен добавить здесь, и в каждом учебнике, который я видел, здесь не указывалось никаких аргументов. Кто-нибудь знает о проблеме ?
Ответ №1:
Если вы работаете с нулевой безопасностью, попробуйте это
Rxn<User> firebaseUser = Rxn<User>();
https://pub.dev/documentation/get/latest/get_rx/get_rx-library.html
Ответ №2:
Это может быть как-то связано с тем, как вы создаете пользовательский наблюдаемый объект. Если вы посмотрите документы getX, это рекомендуемый способ сделать то, что вы делаете. Найдите «модель» на этой странице.
class AuthController extends GetxController {
FirebaseAuth _auth = FirebaseAuth.instance;
final firebaseUser = User().obs;
}
Также имейте в виду, что использование геттеров и сеттеров здесь не имеет значения. Смотрите эту ссылку для объяснения того, почему
Если это не исправит ситуацию, попробуйте поделиться своим User
классом и остальным классом Getx, а также тем, как вы пытаетесь получить доступ firebaseUser
извне.