Мое приложение firebase работает не полностью, это связано с тем, что «Кажется, что функция pthread_join() не вызывается или не задана функция PTHREAD_ATTR_FLAG_DETACHED»?

# #firebase #flutter #dart #authentication #pthread-join

Вопрос:

поэтому я следил за учебником на YouTube о «Аутентификации Flutter Firebase». Я столкнулся с множеством проблем из-за того, что он был в старой версии firebase, но я все исправил и перенес его, а также исправил все проблемы, связанные с нулевой безопасностью… таким образом, он показал 0 проблем или ошибок.

но когда я выполняю его , он показывает это (он продолжает повторять эти строки несколько раз).

 D/libGLESv2(15242): STS_GLApi : DTS is not allowed for Package : com.example.realone
W/libc    (15242): It seems that pthread_join() is not invoked or PTHREAD_ATTR_FLAG_DETACHED is not set.
W/libc    (15242):     pthread tid          : 15281
W/libc    (15242):     pthread start_routine: 0xdeeecce
 

и в телефоне это дает мне место, где можно написать адрес электронной почты и пароль, но когда я нажимаю на кнопку входа, это ничего не делает.

мой код для входа :

 
class _LoginPageState extends State<LoginPage> {
  final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
  late String _email, _password;

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(),
      body: Form(
          key: _formKey,
          child: Column(
            children: <Widget>[
              TextFormField(
                validator: (input) {
                  if (input!.isEmpty) {
                    return 'Provide an email';
                  }
                },
                decoration: InputDecoration(labelText: 'Email'),
                onSaved: (input) => _email = input!,
              ),
              TextFormField(
                validator: (input) {
                  if (input!.length < 6) {
                    return 'Longer password please';
                  }
                },
                decoration: InputDecoration(labelText: 'Password'),
                onSaved: (input) => _password = input!,
                obscureText: true,
              ),
              ElevatedButton(
                onPressed: signIn,
                child: Text('Sign in'),
              ),
            ],
          )),
    );
  }

  void signIn() async {
    if (_formKey.currentState!.validate()) {
      _formKey.currentState!.save();
      try {
        User? user = (await FirebaseAuth.instance
                .signInWithEmailAndPassword(email: _email, password: _password))
            .user;

        // print(user);
        Navigator.push(context,
            MaterialPageRoute(builder: (context) => Home(user: user!)));
      } catch (e) {
        print(e);
      }
    }
  }
}
 

мой домашний код (страница, на которую переходит приложение после входа в систему)

 lass Home extends StatelessWidget {
  const Home({Key? key, required this.user}) : super(key: key);
  final User user;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Home ${user.email}'),
      ),
      body: StreamBuilder<DocumentSnapshot>(
        stream: FirebaseFirestore.instance
            .collection('users')
            .doc(user.uid)
            .snapshots(),
        builder:
            (BuildContext context, AsyncSnapshot<DocumentSnapshot> snapshot) {
          if (snapshot.hasError) {
            return Text('Error: ${snapshot.error}');
          } else if (snapshot.hasData) {
            return checkRole(snapshot.data!);
          }
          return LinearProgressIndicator();
        },
      ),
    );
  }

  Center checkRole(DocumentSnapshot snapshot) {
    if (snapshot.data() == null) {
      return Center(
        child: Text('no data set in the userId document in firestore'),
      );
    }
    if ((snapshot.data() as dynamic)['role'] == 'admin') {
      return adminPage(snapshot);
    } else {
      return userPage(snapshot);
    }
  }

  Center adminPage(DocumentSnapshot snapshot) {
    return Center(
        child: Text(
            '${(snapshot.data() as dynamic)['role']} ${(snapshot.data() as dynamic)['name']}'));
  }

  Center userPage(DocumentSnapshot snapshot) {
    return Center(child: Text((snapshot.data() as dynamic)['name']));
  }
}
 

и у меня есть еще два файла , основной и регистрационный.

Может кто-нибудь, пожалуйста, сказать мне, что не так с моим кодом, потому что я в отчаянии на данный момент.