Каким способом вошёл пользователь

Знать, чем именно пользователь вошёл, полезно для аналитики, поддержки и для того, чтобы показывать разный интерфейс разным группам. Способ ниже работает только с Firebase Authentication.

Нужное значение лежит в свойстве User.providerData:

import 'package:firebase_auth/firebase_auth.dart';

String getUserSignInMethod() {
  final user = FirebaseAuth.instance.currentUser;
  String signInMethod;

  for (var info in user!.providerData) {
    signInMethod = info.providerId;
  }

  return signInMethod;
}

Что здесь происходит:

  • Подключается пакет Firebase Auth.
  • Функция getUserSignInMethod возвращает строку с идентификатором способа входа.
  • Текущий пользователь берётся из FirebaseAuth.instance.currentUser.
  • user.providerData перебирает данные всех способов входа, которыми пользовался этот аккаунт.
  • На каждом шаге в signInMethod записывается providerId.

Что возвращается:

  • вход через Google — 'google.com';
  • вход через Facebook — 'facebook.com';
  • вход по почте и паролю — 'password'.

Это идентификаторы Firebase. Проверьте функцию на своих сценариях: если у аккаунта привязано несколько способов входа, цикл вернёт последний из них.

совет
Как использовать во FlutterFlow

Заверните этот код в собственное действие, верните результат и сохраните его в переменную состояния приложения. Дальше по этому значению можно строить условия — например, показывать разные экраны настроек для входа через Google и по почте.

перевод официальной документации FlutterFlow

обновлено

⌕ ESC