Rx() отсутствует аргумент — Flutter / getX

# #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 извне.