Bei der sozialen Authentifizierung handelt es sich um einen mehrstufigen Authentifizierungsablauf, der es Ihnen ermöglicht, einen Benutzer bei einem Konto anzumelden oder ihn mit einem bestehenden Konto zu verknüpfen.
Sowohl native Plattformen als auch das Web unterstützen die Erstellung von Anmeldeinformationen, die dann an die Methoden signInWithCredential
oder linkWithCredential
übergeben werden können. Alternativ können Sie auf Webplattformen den Authentifizierungsprozess über ein Popup oder eine Weiterleitung auslösen.
Die meisten Konfigurationen sind bereits eingerichtet, wenn Sie Google Sign-In mit Firebase verwenden. Sie müssen jedoch sicherstellen, dass der SHA1-Schlüssel Ihres Computers für die Verwendung mit Android konfiguriert wurde. Wie Sie den Schlüssel generieren, können Sie der Authentifizierungsdokumentation entnehmen.
Stellen Sie sicher, dass der Anmeldeanbieter „Google“ in der Firebase Console aktiviert ist.
Wenn sich Ihr Benutzer bei Google anmeldet, nachdem er bereits manuell ein Konto registriert hat, wechselt sein Authentifizierungsanbieter aufgrund des Konzepts der vertrauenswürdigen Anbieter von Firebase Authentications automatisch zu Google. Mehr dazu erfahren Sie hier .
iOS+ und Android
Auf nativen Plattformen ist eine Drittanbieterbibliothek erforderlich, um den Authentifizierungsfluss auszulösen.
Installieren Sie das offizielle google_sign_in
-Plugin.
Lösen Sie nach der Installation den Anmeldevorgang aus und erstellen Sie neue Anmeldeinformationen:
import 'package:google_sign_in/google_sign_in.dart';
Future<UserCredential> signInWithGoogle() async {
// Trigger the authentication flow
final GoogleSignInAccount? googleUser = await GoogleSignIn().signIn();
// Obtain the auth details from the request
final GoogleSignInAuthentication? googleAuth = await googleUser?.authentication;
// Create a new credential
final credential = GoogleAuthProvider.credential(
accessToken: googleAuth?.accessToken,
idToken: googleAuth?.idToken,
);
// Once signed in, return the UserCredential
return await FirebaseAuth.instance.signInWithCredential(credential);
}
Netz
Im Web bietet das Firebase SDK Unterstützung für die automatische Abwicklung des Authentifizierungsflusses mithilfe Ihres Firebase-Projekts. Zum Beispiel:
Erstellen Sie einen Google-Authentifizierungsanbieter und geben Sie alle zusätzlichen Berechtigungsbereiche an, die Sie vom Benutzer erhalten möchten:
GoogleAuthProvider googleProvider = GoogleAuthProvider();
googleProvider.addScope('https://www.googleapis.com/auth/contacts.readonly');
googleProvider.setCustomParameters({
'login_hint': 'user@example.com'
});
Geben Sie die Anmeldeinformationen für die signInWithPopup
-Methode an. Dadurch wird ein neues Fenster angezeigt, in dem der Benutzer aufgefordert wird, sich bei Ihrem Projekt anzumelden. Alternativ können Sie signInWithRedirect
verwenden, um den Authentifizierungsprozess im selben Fenster zu halten.
Future<UserCredential> signInWithGoogle() async {
// Create a new provider
GoogleAuthProvider googleProvider = GoogleAuthProvider();
googleProvider.addScope('https://www.googleapis.com/auth/contacts.readonly');
googleProvider.setCustomParameters({
'login_hint': 'user@example.com'
});
// Once signed in, return the UserCredential
return await FirebaseAuth.instance.signInWithPopup(googleProvider);
// Or use signInWithRedirect
// return await FirebaseAuth.instance.signInWithRedirect(googleProvider);
}
Google Play-Spiele
Sie können Benutzer in Ihrem Android-Spiel mithilfe der Play Games-Anmeldung authentifizieren.
Android
Befolgen Sie die Anweisungen für die Google-Einrichtung auf Android und konfigurieren Sie dann die Play Games-Dienste mit den Informationen Ihrer Firebase-App .
Folgendes löst den Anmeldevorgang aus, erstellt neue Anmeldeinformationen und meldet den Benutzer an:
final googleUser = await GoogleSignIn(
signInOption: SignInOption.games,
).signIn();
final googleAuth = await googleUser?.authentication;
if (googleAuth != null) {
// Create a new credential
final credential = GoogleAuthProvider.credential(
accessToken: googleAuth.accessToken,
idToken: googleAuth.idToken,
);
// Once signed in, return the UserCredential
await _auth.signInWithCredential(credential);
}
Bevor Sie beginnen, richten Sie Ihre Facebook-Entwickler-App ein und folgen Sie dem Einrichtungsprozess, um die Facebook-Anmeldung zu aktivieren.
Stellen Sie sicher, dass der Anmeldeanbieter „Facebook“ auf der Firebase Console aktiviert ist. mit der Facebook-App-ID und dem Secret-Set.
iOS+ und Android
Auf nativen Plattformen ist eine Drittanbieterbibliothek erforderlich, um sowohl das Facebook SDK zu installieren als auch den Authentifizierungsfluss auszulösen.
Installieren Sie das Plugin flutter_facebook_auth
.
Sie müssen die Schritte in der Plugin-Dokumentation befolgen, um sicherzustellen, dass sowohl die Android- als auch die iOS-Facebook-SDKs korrekt initialisiert wurden. Sobald der Vorgang abgeschlossen ist, lösen Sie den Anmeldevorgang aus, erstellen Sie eine Facebook-Anmeldeinformation und melden Sie den Benutzer an:
import 'package:flutter_facebook_auth/flutter_facebook_auth.dart';
Future<UserCredential> signInWithFacebook() async {
// Trigger the sign-in flow
final LoginResult loginResult = await FacebookAuth.instance.login();
// Create a credential from the access token
final OAuthCredential facebookAuthCredential = FacebookAuthProvider.credential(loginResult.accessToken.token);
// Once signed in, return the UserCredential
return FirebaseAuth.instance.signInWithCredential(facebookAuthCredential);
}
Netz
Im Web bietet das Firebase SDK Unterstützung für die automatische Abwicklung des Authentifizierungsflusses mithilfe der Facebook-Anwendungsdetails, die auf der Firebase-Konsole bereitgestellt werden. Zum Beispiel:
Erstellen Sie einen Facebook-Anbieter und stellen Sie alle zusätzlichen Berechtigungsbereiche bereit, die Sie vom Benutzer erhalten möchten.
Stellen Sie sicher, dass der OAuth-Umleitungs-URI von der Firebase-Konsole als gültiger OAuth-Umleitungs-URI in Ihrer Facebook-App hinzugefügt wird.
FacebookAuthProvider facebookProvider = FacebookAuthProvider();
facebookProvider.addScope('email');
facebookProvider.setCustomParameters({
'display': 'popup',
});
Geben Sie die Anmeldeinformationen für die signInWithPopup
-Methode an. Dadurch wird ein neues Fenster angezeigt, in dem der Benutzer aufgefordert wird, sich bei Ihrer Facebook-Anwendung anzumelden:
Future<UserCredential> signInWithFacebook() async {
// Create a new provider
FacebookAuthProvider facebookProvider = FacebookAuthProvider();
facebookProvider.addScope('email');
facebookProvider.setCustomParameters({
'display': 'popup',
});
// Once signed in, return the UserCredential
return await FirebaseAuth.instance.signInWithPopup(facebookProvider);
// Or use signInWithRedirect
// return await FirebaseAuth.instance.signInWithRedirect(facebookProvider);
}
Apfel
iOS+
Bevor Sie beginnen, konfigurieren Sie „Mit Apple anmelden“ und aktivieren Sie Apple als Anmeldeanbieter .
Stellen Sie als Nächstes sicher, dass Ihre Runner
Apps über die Funktion „Mit Apple anmelden“ verfügen.
Android
Bevor Sie beginnen, konfigurieren Sie „Mit Apple anmelden“ und aktivieren Sie Apple als Anmeldeanbieter .
Netz
Bevor Sie beginnen, konfigurieren Sie „Mit Apple anmelden“ und aktivieren Sie Apple als Anmeldeanbieter .
import 'package:firebase_auth/firebase_auth.dart';
Future<UserCredential> signInWithApple() async {
final appleProvider = AppleAuthProvider();
if (kIsWeb) {
await FirebaseAuth.instance.signInWithPopup(appleProvider);
} else {
await FirebaseAuth.instance.signInWithProvider(appleProvider);
}
}
Microsoft
iOS+
Bevor Sie beginnen, konfigurieren Sie Microsoft Login für iOS und fügen Sie die benutzerdefinierten URL-Schemata zu Ihrem Runner hinzu (Schritt 1) .
Android
Bevor Sie beginnen, konfigurieren Sie Microsoft Login für Android .
Vergessen Sie nicht, den SHA-1-Fingerabdruck Ihrer App hinzuzufügen.
Netz
Bevor Sie beginnen, konfigurieren Sie Microsoft Login für Web .
import 'package:firebase_auth/firebase_auth.dart';
Future<UserCredential> signInWithMicrosoft() async {
final microsoftProvider = MicrosoftAuthProvider();
if (kIsWeb) {
await FirebaseAuth.instance.signInWithPopup(microsoftProvider);
} else {
await FirebaseAuth.instance.signInWithProvider(microsoftProvider);
}
}
Stellen Sie sicher, dass der Anmeldeanbieter „Twitter“ auf der Firebase-Konsole mit einem API-Schlüssel und einem API-Geheimnis aktiviert ist. Stellen Sie sicher, dass Ihr Firebase OAuth-Umleitungs-URI (z. B. my-app-12345.firebaseapp.com/__/auth/handler) auf der Einstellungsseite Ihrer App in der Konfiguration Ihrer Twitter-App als Autorisierungs-Callback-URL festgelegt ist.
Abhängig von Ihrer App müssen Sie möglicherweise auch einen erhöhten API-Zugriff anfordern.
iOS+
Sie müssen Ihr benutzerdefiniertes URL-Schema wie in Schritt 1 der iOS-Anleitung beschrieben konfigurieren.
Android
Wenn Sie den SHA-1-Fingerabdruck Ihrer App noch nicht angegeben haben, tun Sie dies auf der Seite „Einstellungen“ der Firebase-Konsole. Weitere Informationen zum Abrufen des SHA-1-Fingerabdrucks Ihrer App finden Sie unter „Authentifizierung Ihres Clients“ .
Netz
Funktioniert sofort.
import 'package:firebase_auth/firebase_auth.dart';
Future<void> _signInWithTwitter() async {
TwitterAuthProvider twitterProvider = TwitterAuthProvider();
if (kIsWeb) {
await FirebaseAuth.instance.signInWithPopup(twitterProvider);
} else {
await FirebaseAuth.instance.signInWithProvider(twitterProvider);
}
}
GitHub
Stellen Sie sicher, dass Sie in Ihren GitHub-Entwicklereinstellungen eine OAuth-App eingerichtet haben und dass der Anmeldeanbieter „GitHub“ auf der Firebase-Konsole aktiviert ist, die Client-ID und das Geheimnis festgelegt sind und die Rückruf-URL in der GitHub-App festgelegt ist.
iOS+ und Android
Für native Plattformen müssen Sie google-services.json
und GoogleService-Info.plist
hinzufügen.
Fügen Sie für iOS das benutzerdefinierte URL-Schema hinzu, wie in Schritt 1 der iOS-Anleitung beschrieben .
Future<UserCredential> signInWithGitHub() async {
// Create a new provider
GithubAuthProvider githubProvider = GithubAuthProvider();
return await FirebaseAuth.instance.signInWithProvider(githubProvider);
}
Netz
Im Web bietet das GitHub SDK Unterstützung für die automatische Abwicklung des Authentifizierungsflusses mithilfe der GitHub-Anwendungsdetails, die auf der Firebase-Konsole bereitgestellt werden. Stellen Sie sicher, dass die Rückruf-URL in der Firebase-Konsole als Rückruf-URL in Ihrer GitHub-Anwendung auf der Entwicklerkonsole hinzugefügt wird.
Zum Beispiel:
Erstellen Sie einen GitHub-Anbieter und stellen Sie die Anmeldeinformationen für die signInWithPopup
-Methode bereit. Dadurch wird ein neues Fenster angezeigt, in dem der Benutzer aufgefordert wird, sich bei Ihrer GitHub-Anwendung anzumelden:
Future<UserCredential> signInWithGitHub() async {
// Create a new provider
GithubAuthProvider githubProvider = GithubAuthProvider();
// Once signed in, return the UserCredential
return await FirebaseAuth.instance.signInWithPopup(githubProvider);
// Or use signInWithRedirect
// return await FirebaseAuth.instance.signInWithRedirect(githubProvider);
}
Yahoo
Stellen Sie sicher, dass der Anmeldeanbieter „Yahoo“ auf der Firebase-Konsole mit einem API-Schlüssel und einem API-Geheimnis aktiviert ist. Stellen Sie außerdem sicher, dass Ihr Firebase OAuth-Umleitungs-URI (z. B. my-app-12345.firebaseapp.com/__/auth/handler) in der Yahoo Developer Network-Konfiguration Ihrer App als Umleitungs-URI festgelegt ist.
iOS+
Bevor Sie beginnen, konfigurieren Sie Yahoo Login für iOS und fügen Sie die benutzerdefinierten URL-Schemata zu Ihrem Runner hinzu (Schritt 1) .
Android
Bevor Sie beginnen, konfigurieren Sie Yahoo Login für Android .
Vergessen Sie nicht, den SHA-1-Fingerabdruck Ihrer App hinzuzufügen.
Netz
Funktioniert sofort.
import 'package:firebase_auth/firebase_auth.dart';
Future<UserCredential> signInWithYahoo() async {
final yahooProvider = YahooAuthProvider();
if (kIsWeb) {
await _auth.signInWithPopup(yahooProvider);
} else {
await _auth.signInWithProvider(yahooProvider);
}
}
Verwendung des OAuth-Zugriffstokens
Durch die Verwendung eines AuthProviders können Sie das mit dem Anbieter verknüpfte Zugriffstoken abrufen, indem Sie die folgende Anfrage stellen.
final appleProvider = AppleAuthProvider();
final user = await FirebaseAuth.instance.signInWithProvider(appleProvider);
final accessToken = user.credential?.accessToken;
// You can send requests with the `accessToken`
Verknüpfen eines Authentifizierungsanbieters
Wenn Sie einen Anbieter mit einem aktuellen Benutzer verknüpfen möchten, können Sie die folgende Methode verwenden: „dart waiting FirebaseAuth.instance.signInAnonymously();“
final appleProvider = AppleAuthProvider();
if (kIsWeb) { waiting FirebaseAuth.instance.currentUser?.linkWithPopup(appleProvider);
// Sie können auch linkWithRedirect
verwenden } else { waiting FirebaseAuth.instance.currentUser?.linkWithProvider(appleProvider); }
// Ihr anonymer Benutzer wird jetzt aktualisiert, um eine Verbindung mit „Mit Apple anmelden“ herstellen zu können
Authentifizieren Sie sich erneut beim Anbieter
Das gleiche Muster kann mit reauthenticateWithProvider
verwendet werden, mit dem neue Anmeldeinformationen für vertrauliche Vorgänge abgerufen werden können, die eine kürzliche Anmeldung erfordern.
final appleProvider = AppleAuthProvider();
if (kIsWeb) {
await FirebaseAuth.instance.currentUser?.reauthenticateWithPopup(appleProvider);
// Or you can reauthenticate with a redirection
// await FirebaseAuth.instance.currentUser?.reauthenticateWithRedirect(appleProvider);
} else {
await FirebaseAuth.instance.currentUser?.reauthenticateWithProvider(appleProvider);
}
// You can now perform sensitive operations
,Bei der sozialen Authentifizierung handelt es sich um einen mehrstufigen Authentifizierungsablauf, der es Ihnen ermöglicht, einen Benutzer bei einem Konto anzumelden oder ihn mit einem bestehenden Konto zu verknüpfen.
Sowohl native Plattformen als auch das Web unterstützen die Erstellung von Anmeldeinformationen, die dann an die Methoden signInWithCredential
oder linkWithCredential
übergeben werden können. Alternativ können Sie auf Webplattformen den Authentifizierungsprozess über ein Popup oder eine Weiterleitung auslösen.
Die meisten Konfigurationen sind bereits eingerichtet, wenn Sie Google Sign-In mit Firebase verwenden. Sie müssen jedoch sicherstellen, dass der SHA1-Schlüssel Ihres Computers für die Verwendung mit Android konfiguriert wurde. Wie Sie den Schlüssel generieren, können Sie der Authentifizierungsdokumentation entnehmen.
Stellen Sie sicher, dass der Anmeldeanbieter „Google“ in der Firebase Console aktiviert ist.
Wenn sich Ihr Benutzer bei Google anmeldet, nachdem er bereits manuell ein Konto registriert hat, wechselt sein Authentifizierungsanbieter aufgrund des Konzepts der vertrauenswürdigen Anbieter von Firebase Authentications automatisch zu Google. Mehr dazu erfahren Sie hier .
iOS+ und Android
Auf nativen Plattformen ist eine Drittanbieterbibliothek erforderlich, um den Authentifizierungsfluss auszulösen.
Installieren Sie das offizielle google_sign_in
-Plugin.
Lösen Sie nach der Installation den Anmeldevorgang aus und erstellen Sie neue Anmeldeinformationen:
import 'package:google_sign_in/google_sign_in.dart';
Future<UserCredential> signInWithGoogle() async {
// Trigger the authentication flow
final GoogleSignInAccount? googleUser = await GoogleSignIn().signIn();
// Obtain the auth details from the request
final GoogleSignInAuthentication? googleAuth = await googleUser?.authentication;
// Create a new credential
final credential = GoogleAuthProvider.credential(
accessToken: googleAuth?.accessToken,
idToken: googleAuth?.idToken,
);
// Once signed in, return the UserCredential
return await FirebaseAuth.instance.signInWithCredential(credential);
}
Netz
Im Web bietet das Firebase SDK Unterstützung für die automatische Abwicklung des Authentifizierungsflusses mithilfe Ihres Firebase-Projekts. Zum Beispiel:
Erstellen Sie einen Google-Authentifizierungsanbieter und geben Sie alle zusätzlichen Berechtigungsbereiche an, die Sie vom Benutzer erhalten möchten:
GoogleAuthProvider googleProvider = GoogleAuthProvider();
googleProvider.addScope('https://www.googleapis.com/auth/contacts.readonly');
googleProvider.setCustomParameters({
'login_hint': 'user@example.com'
});
Geben Sie die Anmeldeinformationen für die signInWithPopup
-Methode an. Dadurch wird ein neues Fenster angezeigt, in dem der Benutzer aufgefordert wird, sich bei Ihrem Projekt anzumelden. Alternativ können Sie signInWithRedirect
verwenden, um den Authentifizierungsprozess im selben Fenster zu halten.
Future<UserCredential> signInWithGoogle() async {
// Create a new provider
GoogleAuthProvider googleProvider = GoogleAuthProvider();
googleProvider.addScope('https://www.googleapis.com/auth/contacts.readonly');
googleProvider.setCustomParameters({
'login_hint': 'user@example.com'
});
// Once signed in, return the UserCredential
return await FirebaseAuth.instance.signInWithPopup(googleProvider);
// Or use signInWithRedirect
// return await FirebaseAuth.instance.signInWithRedirect(googleProvider);
}
Google Play-Spiele
Sie können Benutzer in Ihrem Android-Spiel mithilfe der Play Games-Anmeldung authentifizieren.
Android
Befolgen Sie die Anweisungen für die Google-Einrichtung auf Android und konfigurieren Sie dann die Play Games-Dienste mit den Informationen Ihrer Firebase-App .
Folgendes löst den Anmeldevorgang aus, erstellt neue Anmeldeinformationen und meldet den Benutzer an:
final googleUser = await GoogleSignIn(
signInOption: SignInOption.games,
).signIn();
final googleAuth = await googleUser?.authentication;
if (googleAuth != null) {
// Create a new credential
final credential = GoogleAuthProvider.credential(
accessToken: googleAuth.accessToken,
idToken: googleAuth.idToken,
);
// Once signed in, return the UserCredential
await _auth.signInWithCredential(credential);
}
Bevor Sie beginnen, richten Sie Ihre Facebook-Entwickler-App ein und folgen Sie dem Einrichtungsprozess, um die Facebook-Anmeldung zu aktivieren.
Stellen Sie sicher, dass der Anmeldeanbieter „Facebook“ auf der Firebase Console aktiviert ist. mit der Facebook-App-ID und dem Secret-Set.
iOS+ und Android
Auf nativen Plattformen ist eine Drittanbieterbibliothek erforderlich, um sowohl das Facebook SDK zu installieren als auch den Authentifizierungsfluss auszulösen.
Installieren Sie das Plugin flutter_facebook_auth
.
Sie müssen die Schritte in der Plugin-Dokumentation befolgen, um sicherzustellen, dass sowohl die Android- als auch die iOS-Facebook-SDKs korrekt initialisiert wurden. Sobald der Vorgang abgeschlossen ist, lösen Sie den Anmeldevorgang aus, erstellen Sie eine Facebook-Anmeldeinformation und melden Sie den Benutzer an:
import 'package:flutter_facebook_auth/flutter_facebook_auth.dart';
Future<UserCredential> signInWithFacebook() async {
// Trigger the sign-in flow
final LoginResult loginResult = await FacebookAuth.instance.login();
// Create a credential from the access token
final OAuthCredential facebookAuthCredential = FacebookAuthProvider.credential(loginResult.accessToken.token);
// Once signed in, return the UserCredential
return FirebaseAuth.instance.signInWithCredential(facebookAuthCredential);
}
Netz
Im Web bietet das Firebase SDK Unterstützung für die automatische Abwicklung des Authentifizierungsflusses mithilfe der Facebook-Anwendungsdetails, die auf der Firebase-Konsole bereitgestellt werden. Zum Beispiel:
Erstellen Sie einen Facebook-Anbieter und stellen Sie alle zusätzlichen Berechtigungsbereiche bereit, die Sie vom Benutzer erhalten möchten.
Stellen Sie sicher, dass der OAuth-Umleitungs-URI von der Firebase-Konsole als gültiger OAuth-Umleitungs-URI in Ihrer Facebook-App hinzugefügt wird.
FacebookAuthProvider facebookProvider = FacebookAuthProvider();
facebookProvider.addScope('email');
facebookProvider.setCustomParameters({
'display': 'popup',
});
Geben Sie die Anmeldeinformationen für die signInWithPopup
-Methode an. Dadurch wird ein neues Fenster angezeigt, in dem der Benutzer aufgefordert wird, sich bei Ihrer Facebook-Anwendung anzumelden:
Future<UserCredential> signInWithFacebook() async {
// Create a new provider
FacebookAuthProvider facebookProvider = FacebookAuthProvider();
facebookProvider.addScope('email');
facebookProvider.setCustomParameters({
'display': 'popup',
});
// Once signed in, return the UserCredential
return await FirebaseAuth.instance.signInWithPopup(facebookProvider);
// Or use signInWithRedirect
// return await FirebaseAuth.instance.signInWithRedirect(facebookProvider);
}
Apfel
iOS+
Bevor Sie beginnen, konfigurieren Sie „Mit Apple anmelden“ und aktivieren Sie Apple als Anmeldeanbieter .
Stellen Sie als Nächstes sicher, dass Ihre Runner
Apps über die Funktion „Mit Apple anmelden“ verfügen.
Android
Bevor Sie beginnen, konfigurieren Sie „Mit Apple anmelden“ und aktivieren Sie Apple als Anmeldeanbieter .
Netz
Bevor Sie beginnen, konfigurieren Sie „Mit Apple anmelden“ und aktivieren Sie Apple als Anmeldeanbieter .
import 'package:firebase_auth/firebase_auth.dart';
Future<UserCredential> signInWithApple() async {
final appleProvider = AppleAuthProvider();
if (kIsWeb) {
await FirebaseAuth.instance.signInWithPopup(appleProvider);
} else {
await FirebaseAuth.instance.signInWithProvider(appleProvider);
}
}
Microsoft
iOS+
Bevor Sie beginnen, konfigurieren Sie Microsoft Login für iOS und fügen Sie die benutzerdefinierten URL-Schemata zu Ihrem Runner hinzu (Schritt 1) .
Android
Bevor Sie beginnen, konfigurieren Sie Microsoft Login für Android .
Vergessen Sie nicht, den SHA-1-Fingerabdruck Ihrer App hinzuzufügen.
Netz
Bevor Sie beginnen, konfigurieren Sie Microsoft Login für Web .
import 'package:firebase_auth/firebase_auth.dart';
Future<UserCredential> signInWithMicrosoft() async {
final microsoftProvider = MicrosoftAuthProvider();
if (kIsWeb) {
await FirebaseAuth.instance.signInWithPopup(microsoftProvider);
} else {
await FirebaseAuth.instance.signInWithProvider(microsoftProvider);
}
}
Stellen Sie sicher, dass der Anmeldeanbieter „Twitter“ auf der Firebase-Konsole mit einem API-Schlüssel und einem API-Geheimnis aktiviert ist. Stellen Sie sicher, dass Ihr Firebase OAuth-Umleitungs-URI (z. B. my-app-12345.firebaseapp.com/__/auth/handler) auf der Einstellungsseite Ihrer App in der Konfiguration Ihrer Twitter-App als Autorisierungs-Callback-URL festgelegt ist.
Abhängig von Ihrer App müssen Sie möglicherweise auch einen erhöhten API-Zugriff anfordern.
iOS+
Sie müssen Ihr benutzerdefiniertes URL-Schema wie in Schritt 1 der iOS-Anleitung beschrieben konfigurieren.
Android
Wenn Sie den SHA-1-Fingerabdruck Ihrer App noch nicht angegeben haben, tun Sie dies auf der Seite „Einstellungen“ der Firebase-Konsole. Weitere Informationen zum Abrufen des SHA-1-Fingerabdrucks Ihrer App finden Sie unter „Authentifizierung Ihres Clients“ .
Netz
Funktioniert sofort.
import 'package:firebase_auth/firebase_auth.dart';
Future<void> _signInWithTwitter() async {
TwitterAuthProvider twitterProvider = TwitterAuthProvider();
if (kIsWeb) {
await FirebaseAuth.instance.signInWithPopup(twitterProvider);
} else {
await FirebaseAuth.instance.signInWithProvider(twitterProvider);
}
}
GitHub
Stellen Sie sicher, dass Sie in Ihren GitHub-Entwicklereinstellungen eine OAuth-App eingerichtet haben und dass der Anmeldeanbieter „GitHub“ auf der Firebase-Konsole aktiviert ist, die Client-ID und das Geheimnis festgelegt sind und die Rückruf-URL in der GitHub-App festgelegt ist.
iOS+ und Android
Für native Plattformen müssen Sie google-services.json
und GoogleService-Info.plist
hinzufügen.
Fügen Sie für iOS das benutzerdefinierte URL-Schema hinzu, wie in Schritt 1 der iOS-Anleitung beschrieben .
Future<UserCredential> signInWithGitHub() async {
// Create a new provider
GithubAuthProvider githubProvider = GithubAuthProvider();
return await FirebaseAuth.instance.signInWithProvider(githubProvider);
}
Netz
Im Web bietet das GitHub SDK Unterstützung für die automatische Abwicklung des Authentifizierungsflusses mithilfe der GitHub-Anwendungsdetails, die auf der Firebase-Konsole bereitgestellt werden. Stellen Sie sicher, dass die Rückruf-URL in der Firebase-Konsole als Rückruf-URL in Ihrer GitHub-Anwendung auf der Entwicklerkonsole hinzugefügt wird.
Zum Beispiel:
Erstellen Sie einen GitHub-Anbieter und stellen Sie die Anmeldeinformationen für die signInWithPopup
-Methode bereit. Dadurch wird ein neues Fenster angezeigt, in dem der Benutzer aufgefordert wird, sich bei Ihrer GitHub-Anwendung anzumelden:
Future<UserCredential> signInWithGitHub() async {
// Create a new provider
GithubAuthProvider githubProvider = GithubAuthProvider();
// Once signed in, return the UserCredential
return await FirebaseAuth.instance.signInWithPopup(githubProvider);
// Or use signInWithRedirect
// return await FirebaseAuth.instance.signInWithRedirect(githubProvider);
}
Yahoo
Stellen Sie sicher, dass der Anmeldeanbieter „Yahoo“ auf der Firebase-Konsole mit einem API-Schlüssel und einem API-Geheimnis aktiviert ist. Stellen Sie außerdem sicher, dass Ihr Firebase OAuth-Umleitungs-URI (z. B. my-app-12345.firebaseapp.com/__/auth/handler) in der Yahoo Developer Network-Konfiguration Ihrer App als Umleitungs-URI festgelegt ist.
iOS+
Bevor Sie beginnen, konfigurieren Sie Yahoo Login für iOS und fügen Sie die benutzerdefinierten URL-Schemata zu Ihrem Runner hinzu (Schritt 1) .
Android
Bevor Sie beginnen, konfigurieren Sie Yahoo Login für Android .
Vergessen Sie nicht, den SHA-1-Fingerabdruck Ihrer App hinzuzufügen.
Netz
Funktioniert sofort.
import 'package:firebase_auth/firebase_auth.dart';
Future<UserCredential> signInWithYahoo() async {
final yahooProvider = YahooAuthProvider();
if (kIsWeb) {
await _auth.signInWithPopup(yahooProvider);
} else {
await _auth.signInWithProvider(yahooProvider);
}
}
Verwendung des OAuth-Zugriffstokens
Durch die Verwendung eines AuthProviders können Sie das mit dem Anbieter verknüpfte Zugriffstoken abrufen, indem Sie die folgende Anfrage stellen.
final appleProvider = AppleAuthProvider();
final user = await FirebaseAuth.instance.signInWithProvider(appleProvider);
final accessToken = user.credential?.accessToken;
// You can send requests with the `accessToken`
Verknüpfen eines Authentifizierungsanbieters
Wenn Sie einen Anbieter mit einem aktuellen Benutzer verknüpfen möchten, können Sie die folgende Methode verwenden: „dart waiting FirebaseAuth.instance.signInAnonymously();“
final appleProvider = AppleAuthProvider();
if (kIsWeb) { waiting FirebaseAuth.instance.currentUser?.linkWithPopup(appleProvider);
// Sie können auch linkWithRedirect
verwenden } else { waiting FirebaseAuth.instance.currentUser?.linkWithProvider(appleProvider); }
// Ihr anonymer Benutzer wird jetzt aktualisiert, um eine Verbindung mit „Mit Apple anmelden“ herstellen zu können
Authentifizieren Sie sich erneut beim Anbieter
Das gleiche Muster kann mit reauthenticateWithProvider
verwendet werden, mit dem neue Anmeldeinformationen für vertrauliche Vorgänge abgerufen werden können, die eine kürzliche Anmeldung erfordern.
final appleProvider = AppleAuthProvider();
if (kIsWeb) {
await FirebaseAuth.instance.currentUser?.reauthenticateWithPopup(appleProvider);
// Or you can reauthenticate with a redirection
// await FirebaseAuth.instance.currentUser?.reauthenticateWithRedirect(appleProvider);
} else {
await FirebaseAuth.instance.currentUser?.reauthenticateWithProvider(appleProvider);
}
// You can now perform sensitive operations