Flutter社交认证插件flutter_gb_authentication_fire_social的使用
Flutter社交认证插件flutter_gb_authentication_fire_social的使用
特性
警告
首先,确保您的Firebase项目已经配置并且您有访问权限。
必要依赖项
在pubspec.yaml
文件中添加以下依赖项:
firebase_auth: ^4.4.2 # 或更高版本
firebase_core: ^2.3.0 # 或更高版本
flutter_gb_authentication_fire_social: 2.0.0
根据使用的社交提供商安装相应的依赖包:
flutter_gb_authentication_fire_social_google
flutter_gb_authentication_fire_social_apple
flutter_gb_authentication_fire_social_facebook
Android配置
- 访问Firebase控制台并打开项目配置。
- 向下滚动到您的应用部分,您将看到已配置的应用程序。
- 点击google-services.json按钮以在两个Android应用(开发和生产)中下载配置文件。
- 在您的项目文件夹中,转到
android/app/src/
文件夹。 - 在上述文件夹内为每个口味创建一个文件夹,并粘贴相应的
google-services.json
文件。 - 在
android/build.gradle
文件中,在依赖项中添加Google服务插件。
dependencies {
classpath 'com.android.tools.build:gradle:4.1.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.3.10' // Google Services插件
}
- 在
android/app/build.gradle
文件中,应用Google服务插件。
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
apply plugin: 'com.google.gms.google-services' // Google Services插件
- 我们需要在
android/app/build.gradle
文件中的Gradle依赖项中实现多DEX支持,以防止在使用Firebase时出现任何问题。
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.android.support:multidex:2.0.1' // 多DEX
}
- 同样地,我们还需要在上述文件的
defaultConfig
中启用多DEX支持。
defaultConfig {
applicationId "com.example.app"
minSdkVersion flutter.minSdkVersion
targetSdkVersion flutter.targetSdkVersion
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
multiDexEnabled true // 启用多DEX
}
-
Google
- Google配置
- 确保您已将您的SHA密钥添加到Firebase项目配置中。
- Google配置
-
Facebook
- Facebook配置
- 如果您的项目使用Facebook进行登录和注册,应在
android/app/src/main/res/values/strings.xml
文件中添加您的facebook_app_id
和facebook_client_token
。
- 如果您的项目使用Facebook进行登录和注册,应在
- Facebook配置
<resources>
<string name="facebook_app_id">YOUR_ID</string>
<string name="facebook_client_token">YOUR_CLIENT_TOKEN</string>
</resources>
2. 您需要在`android/src/app/main/AndroidManifest.xml`文件中添加查询和元数据标签以完成Facebook配置。
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.boxxie.app">
<!-- 如果使用Facebook 添加此查询 -->
<queries>
<provider android:authorities="com.facebook.katana.provider.PlatformProvider" />
</queries>
<application android:label="@string/app_name" android:name="${applicationName}" android:icon="@mipmap/launcher_icon">
<!-- 如果使用Facebook 添加这两个元数据 -->
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id" />
<meta-data android:name="com.facebook.sdk.ClientToken" android:value="@string/facebook_client_token" />
...更多代码
</application>
...更多代码
</manifest>
- Apple Sign In
- Apple配置
- 在Firebase控制台 -> 身份验证 -> 登录方法中激活Apple登录方法。
- 我们建议遵循这些说明来配置Apple服务以创建Apple登录服务ID。
- 创建Apple登录服务
- 在每个App ID上启用Apple登录功能
- 为Apple登录服务生成密钥
- 在Apple登录方法中填写Firebase配置数据
- 配置
AuthenticationFireSocialConfigModel.appleWebAuthentication (WebAuthenticationOptions)
设置。
- Apple配置
iOS配置
- 访问Firebase控制台并打开项目配置。
- 向下滚动到您的应用部分,您将看到已配置的应用程序。
- 点击GoogleService-Info.plist按钮以在两个iOS应用(开发和生产)中下载配置文件。
- 在您的项目文件夹中,转到
ios
文件夹并创建一个新的名为config
的文件夹(如果不存在的话)。 - 在
config
文件夹内为每个方案创建一个文件夹,并粘贴相应的GoogleService-Info.plist
文件。 - 如果使用了风味项目,请确保遵循这些说明。
- 打开您的
ios/Runner/Info.plist
文件并添加以下代码。
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array>
<!-- 从GoogleService-Info.plist键复制REVERSED_CLIENT_ID -->
<string>$(GOOGLE_REVERSED_ID)</string>
</array>
</dict>
</array>
- 对于Facebook:
- 在
ios/Runner/Info.plist
中添加:
- 在
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>fb{FACEBOOK_CLIENT_ID}</string>
</array>
</dict>
</array>
<key>FacebookAppID</key>
<string>{FACEBOOK_CLIENT_ID}</string>
<key>FacebookClientToken</key>
<string>{FACEBOOK_CLIENT_TOKEN}</string>
<key>FacebookDisplayName</key>
<string>{App Name}</string>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fbapi</string>
<string>fb-messenger-share-api</string>
<string>tel</string>
<string>https</string>
<string>http</string>
</array>
- 对于Apple:
- 在XCode项目中启用Apple登录功能。
注入配置
- 在您的
lib/core/injection_config.dart
文件中,应创建一个AuthenticationFireSocialConfigModel
实例并添加自定义端点,将其放在configureDependencies
方法中。
final authConfig = AuthenticationFireSocialConfigModel(
loginCredentialsAPIendpoint: () {
return EnvironmentConfig.api_url + ApiEndpoints.login();
},
customLoginRequestMapper: (email, password) {
return {
"emailOrUsername": email,
"password": password,
};
},
signupCredentialsAPIendpoint: () {
return EnvironmentConfig.api_url + ApiEndpoints.signup();
},
authenticateGoogleAPIendpoint: (_) {
return EnvironmentConfig.api_url + ApiEndpoints.authFirebaseSocial();
},
authenticateFacebookAPIendpoint: (_) {
return EnvironmentConfig.api_url + ApiEndpoints.authFirebaseSocial();
},
authenticateAppleAPIendpoint: (_) {
return EnvironmentConfig.api_url + ApiEndpoints.authFirebaseSocial();
},
);
- 您还需要在
configureDependencies
方法中调用configureAuthenticationAdvancedInjection
。
// 配置身份验证包
await configureAuthenticationAdvancedInjection(
environment,
authConfig,
customAuthServiceFactory: (() {
// 注册自定义的身份验证服务实现
return CustomAuthenticationServiceImpl(
config: authConfig,
httpClient: getIt(),
sharedPreferences: getIt(),
appleSignInFacade: getIt(),
facebookSignInFacade: getIt(),
googleSignInFacade: getIt(),
logger: getAuthenticationSocialLogger(authConfig),
);
}),
);
更多关于Flutter社交认证插件flutter_gb_authentication_fire_social的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter社交认证插件flutter_gb_authentication_fire_social的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,关于Flutter社交认证插件 flutter_gb_authentication_fire_social
的使用,下面是一个简单的代码示例,展示了如何集成和使用该插件进行社交登录。请注意,实际使用时需要根据具体需求进行调整,并确保已经正确配置了Firebase和相关社交平台的认证设置。
首先,确保你的Flutter项目已经添加了flutter_gb_authentication_fire_social
依赖。在pubspec.yaml
文件中添加以下依赖:
dependencies:
flutter:
sdk: flutter
flutter_gb_authentication_fire_social: ^最新版本号 # 请替换为最新版本号
然后运行flutter pub get
来安装依赖。
接下来,配置Firebase。你需要在Firebase控制台中为你的应用启用相应的社交平台登录(如Google、Facebook、Twitter等),并获取必要的客户端ID和密钥。确保这些配置已经正确设置在你的Firebase项目中。
下面是一个简单的示例代码,展示了如何使用flutter_gb_authentication_fire_social
插件进行社交登录:
import 'package:flutter/material.dart';
import 'package:flutter_gb_authentication_fire_social/flutter_gb_authentication_fire_social.dart';
import 'package:firebase_auth/firebase_auth.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: SocialLoginScreen(),
);
}
}
class SocialLoginScreen extends StatefulWidget {
@override
_SocialLoginScreenState createState() => _SocialLoginScreenState();
}
class _SocialLoginScreenState extends State<SocialLoginScreen> {
final FirebaseAuth _auth = FirebaseAuth.instance;
Future<void> _signInWithGoogle() async {
try {
// 使用Google进行登录
final GoogleSignInProvider googleProvider = GoogleSignInProvider();
final UserCredential result = await FlutterGbAuthenticationFireSocial.signInWithProvider(googleProvider);
final User? user = result.user;
if (user != null) {
// 登录成功,可以在这里处理用户信息
print('User signed in: ${user.uid}');
}
} catch (e) {
// 处理登录错误
print('Error signing in with Google: $e');
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Social Login Example'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
ElevatedButton(
onPressed: _signInWithGoogle,
child: Text('Sign in with Google'),
),
// 你可以在这里添加其他社交平台的登录按钮,如Facebook、Twitter等
],
),
),
);
}
}
在这个示例中,我们创建了一个简单的Flutter应用,其中包含一个使用Google进行社交登录的按钮。当用户点击该按钮时,会调用_signInWithGoogle
方法,该方法使用flutter_gb_authentication_fire_social
插件的signInWithProvider
方法进行Google登录。
请注意,为了使用Google登录,你需要在Firebase控制台中启用Google登录,并下载并配置google-services.json
文件。对于其他社交平台,步骤类似,但具体的配置和插件方法调用可能会有所不同。
此外,由于插件和Firebase SDK可能会更新,因此在实际使用时,请参考最新的官方文档和插件README文件以获取最准确的信息。