[英]Firebase authentication asks for update for google play service
我想創建一個EmailPassword身份驗證頁面,因為可以從以下代碼中推斷出它:
package parsa.lop.sibeh;
import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
public class MainActivity extends AppCompatActivity {
private FirebaseAuth mAuth;
private Button mLogin;
private EditText mEmail;
private EditText mPassword;
private GoogleApiClient mGoogleApiClient;
private FirebaseAuth.AuthStateListener mAuthListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mAuth = FirebaseAuth.getInstance();
mLogin = findViewById(R.id.login);
mEmail = findViewById(R.id.email);
mPassword = findViewById(R.id.password);
mAuthListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
if(firebaseAuth.getCurrentUser() != null){
startActivity(new Intent(MainActivity.this, StartActivity.class));
}
}
};
}
@Override
protected void onStart() {
super.onStart();
mAuth.addAuthStateListener(mAuthListener);
}
public void loginButton(View view){
String email = mEmail.getText().toString();
String pass = mPassword.getText().toString();
mAuth.signInWithEmailAndPassword(email, pass).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful()){
Toast.makeText(MainActivity.this, "Signed In", Toast.LENGTH_LONG).show();
}
}
});
}
}
我的應用程序build.gradle
包含
implementation 'com.google.firebase:firebase-core:16.0.6'
implementation 'com.google.firebase:firebase-auth:16.1.0'
和我的項目build.gradle
包含
classpath 'com.google.gms:google-services:4.2.0'
我在firebase中創建了一個帳戶,並在我的應用文件夾中下載了google-services.json
。 所以我沒有任何錯誤,只是當我通過loginButton()
函數單擊按鈕時,我得到了一個 從模擬器中更新Google Play服務
所有的Google服務(例如Firebase,Google Maps等)都可以與Google Play服務一起使用,如果您尚未更新它們,則這些服務中的任何一項都將在您的設備中運行,您需要對其進行更新並確保它們是最新的。
為避免用戶卡在該窗口中,您可以添加檢查以驗證Google Play服務版本是否為最新版本,否則,您可以重定向用戶以對其進行更新
final String appPackageName = "con.google.android.gms"; // package name of the app
int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext());
if(status == ConnectionResult.SUCCESS) {
//alarm to go and install Google Play Services
}else if(status == ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED){
Toast.makeText(context,"please udpate your google play service",Toast.LENGTH_SHORT).show
try {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName)));
} catch (android.content.ActivityNotFoundException anfe) {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName)));
}
}
在您的else語句中,我們正在重定向用戶以將其安裝在此位置
https://play.google.com/store/apps/details?id=com.google.android.gms
要從模擬器更新您的Google Play服務,請參考此答案,以在模擬器中更新Google Play服務
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.