Каким способом вошёл пользователь
Знать, чем именно пользователь вошёл, полезно для аналитики, поддержки и для того, чтобы показывать разный интерфейс разным группам. Способ ниже работает только с 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 и по почте.