Как связать аккаунты с разными провайдерами, используя firebase auth? - PullRequest
0 голосов
/ 24 октября 2019

Я использую библиотеку flutter firebase для аутентификации, требующей входа в Facebook, Google, электронной почты и пароля. Я хочу связать аккаунт, если электронное письмо совпадает с уже существующим в базе данных, поток, который я делаю: 1- Пользователь не вошел в систему. 2- Пользователь вошел в систему с помощью Google 3. это требует currentUser

Мой код

        if (val.status == FacebookLoginStatus.loggedIn) {
          final AuthCredential credential = FacebookAuthProvider.getCredential(
              accessToken: val.accessToken.token);
          try {
            var credentialResult =await _auth.signInWithCredential(credential);
            if(credentialResult.user != null){
                user = credentialResult.user;
            }
            updateUserData(user);
            loading.add(false);
            if (Platform.isIOS) {
              Navigator.of(context, rootNavigator: true).pop();
            }
            return user;
          } on PlatformException catch (e,stack) {

            print(stack);
            print(e.code);
            loading.add(false);
            switch (e.code) {
              case 'ERROR_ACCOUNT_EXISTS_WITH_DIFFERENT_CREDENTIAL':
                break;
            }
          } catch (e){
            print('hasdad $e');
          }
        } 

Также я прочитал в исходном коде, что я могу 'Разрешить этот случай, вызвав [fetchSignInMethodsForEmail] и затем попросив пользователя войти в систему с помощьюодин из них. '

Но как я могу получить письмо с намерением войти, если оно выдает исключение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...