要在不同设备上实现Firebase电子邮件链接登录,可以按照以下步骤进行操作:
dependencies {
// Firebase身份验证
implementation 'com.google.firebase:firebase-auth:19.4.0'
// Firebase实时数据库
implementation 'com.google.firebase:firebase-database:19.3.1'
}
public class MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
FirebaseApp.initializeApp(this);
}
}
public class EmailLinkLoginActivity extends AppCompatActivity {
private FirebaseAuth mAuth;
private String mEmail;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_email_link_login);
mAuth = FirebaseAuth.getInstance();
// 获取电子邮件链接登录的参数
Intent intent = getIntent();
String emailLink = intent.getData().toString();
mEmail = intent.getStringExtra("email");
// 完成电子邮件链接登录
mAuth.signInWithEmailLink(mEmail, emailLink)
.addOnCompleteListener(this, new OnCompleteListener() {
@Override
public void onComplete(@NonNull Task task) {
if (task.isSuccessful()) {
// 登录成功
FirebaseUser user = mAuth.getCurrentUser();
Toast.makeText(EmailLinkLoginActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
} else {
// 登录失败
Toast.makeText(EmailLinkLoginActivity.this, "登录失败", Toast.LENGTH_SHORT).show();
}
}
});
}
}
String emailLink = "https://example.com/emailSignInLink?email=" + Uri.encode(email);
Intent emailIntent = new Intent(Intent.ACTION_SENDTO);
emailIntent.setData(Uri.parse("mailto:"));
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "登录链接");
emailIntent.putExtra(Intent.EXTRA_TEXT, "点击以下链接进行登录: " + emailLink);
startActivity(Intent.createChooser(emailIntent, "选择邮件客户端"));
注意:在Firebase控制台中,需要配置正确的深度链接URL,并将其添加到AndroidManifest.xml文件中的标签中。
这是一个简单的示例,可以根据具体需求进行扩展和定制。