Firebase 电子邮件/密码身份验证是否可以使用通用代码 .net 标准的 Android 和 IOS 通用代码进行开发?
我已经设计了具有 .XAML 格式的简单登录页面,但我没有找到任何与 Firebase 身份验证与 Xamarin.Forms 和 .net 标准代码共享集成相关的示例。
如果这个策略可行的话可以给我提供集成示例将有助于进一步理解。
是的,这绝对是可能的。
由于只有特定于平台的 Xamarin.Firebase NuGet 包,因此我们必须创建一个简单的抽象层,如下所示:
public interface IFirebaseAuthenticator
{
Task<string> LoginWithEmailPassword(string email, string password);
}
每个平台都必须单独实现此接口。
安卓实现:
public class FirebaseAuthenticator : IFirebaseAuthenticator
{
public async Task<string> LoginWithEmailPassword(string email, string password)
{
var user = await FirebaseAuth.Instance.
SignInWithEmailAndPasswordAsync(email, password);
var token = await user.User.GetIdTokenAsync(false);
return token.Token;
}
}
iOS 实现:
public class FirebaseAuthenticator : IFirebaseAuthenticator
{
public async Task<string> LoginWithEmailPassword(string email, string password)
{
var user = await Auth.DefaultInstance.SignInAsync(email, password);
return await user.GetIdTokenAsync();
}
}
现在您可以简单地使用IFirebaseAuthenticator
在XF级别。欲了解更多详细信息,您可以查看关于它的详细文章 https://smellyc0de.wordpress.com/2018/03/26/firebase-authentication-in-xamarin-forms/并且它的源代码是可用的here https://github.com/yuv4ik/XFFirebaseAuthExample.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)