0
我一直在嘗試實施Firebase文檔中的邏輯,以瞭解如何通過Firebase上的Facebook對用戶進行身份驗證。但我看起來更關注於native android
而不是Xamarin。任何人都可以幫我解決材料問題嗎?我已經通過在線和論壇搜索了一個樣本。使用Xamarin的Firebase Facebook身份驗證Android
我一直在嘗試實施Firebase文檔中的邏輯,以瞭解如何通過Firebase上的Facebook對用戶進行身份驗證。但我看起來更關注於native android
而不是Xamarin。任何人都可以幫我解決材料問題嗎?我已經通過在線和論壇搜索了一個樣本。使用Xamarin的Firebase Facebook身份驗證Android
任何人都可以幫我一個材料嗎?我已經通過在線和論壇搜索了一個樣本。
我沒有找到Xamarin.Android官方教程,但我覺得你還是可以按照Facebook Login for Android和Authenticate Using Facebook Login on Android在Xamarin.Android加以補充,基本上他們非常喜歡。
首先,爲Xamarin安裝Firebase sdks,並與Xamarin.Facebook.Android一起安裝。
然後按照上述教程中的流程進行操作。
這裏是我的演示:
[Activity(Label = "LoginActivity", Exported = true)]
[IntentFilter(new[] { Intent.ActionView },
DataScheme = "@string/fb_login_protocol_scheme"),]
public class LoginActivity : Activity, IFacebookCallback, IOnCompleteListener
{
private ICallbackManager mCallbackManager;
private FirebaseAuth mAuth;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
FacebookSdk.SdkInitialize(this.ApplicationContext);
// Create your application here
SetContentView(Resource.Layout.loginlayout);
FirebaseApp.InitializeApp(this);
mAuth = FirebaseAuth.Instance;
LoginButton fblogin = FindViewById<LoginButton>(Resource.Id.fblogin);
fblogin.SetReadPermissions("email", "public_profile");
mCallbackManager = CallbackManagerFactory.Create();
fblogin.RegisterCallback(mCallbackManager, this);
}
private void handleFacebookAccessToken(AccessToken accessToken)
{
AuthCredential credential = FacebookAuthProvider.GetCredential(accessToken.Token);
mAuth.SignInWithCredential(credential).AddOnCompleteListener(this, this);
}
//facebook IFacebookCallback implementation
public void OnSuccess(Java.Lang.Object p0)
{
LoginResult loginResult = p0 as LoginResult;
handleFacebookAccessToken(loginResult.AccessToken);
}
public void OnCancel()
{
}
public void OnError(FacebookException p0)
{
}
//firebase IOnCompleteListener implementation
public void OnComplete(Task task)
{
if (task.IsSuccessful)
{
FirebaseUser user = mAuth.CurrentUser;
}
else
{
Toast.MakeText(this, "Authentication failed.", ToastLength.Short).Show();
}
}
// acitivity lifecycle
protected override void OnStart()
{
base.OnStart();
FirebaseUser currentUser = mAuth.CurrentUser;
}
protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
var resultCodeNum = 0;
switch (resultCode)
{
case Result.Ok:
resultCodeNum = -1;
break;
case Result.Canceled:
resultCodeNum = 0;
break;
case Result.FirstUser:
resultCodeNum = 1;
break;
}
mCallbackManager.OnActivityResult(requestCode, resultCodeNum, data);
}
}
佈局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.facebook.login.widget.LoginButton
android:id="@+id/fblogin"
android:layout_height="wrap_content"
android:layout_width="match_parent" />
</LinearLayout>
清單:
<uses-permission android:name="android.permission.INTERNET" />
<application android:label="AndroidFireBase">
<meta-data android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id" />
https://stackoverflow.com/questions/24105390/how-to-login -to-facebook-in-xamarin-forms –
@MartinDeSimone,謝謝,但它與Firebase無關,而且我沒有使用表單。此外,我已經能夠通過Facebook實現登錄。我只想將Firebase身份驗證添加到我的應用程序,以便我可以看到已登錄的用戶 – XamarinDevil