谷歌Firebase身份验证Android工作室
问题描述:
我试图在我的应用程序中配置新的谷歌Firebase身份验证。谷歌Firebase身份验证Android工作室
在OnClickListener
中为按钮运行以下内容时,我收到了cannot resolve 'addOnCOmpleteListener'
。
如果我移动火力呼出按钮onClickListener
则误差变的,
我不能明白为什么该方法不是从按钮调用
任何帮助,将不胜感激内访问
package com.example.alex.test;
import android.app.Activity;
import android.app.Application;
import android.content.Context;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
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;
import com.google.firebase.auth.FirebaseUser;
public class LoginActivity extends AppCompatActivity {
private FirebaseAuth mAuth;
private FirebaseAuth.AuthStateListener mAuthListener;
Button buttonLogin;
EditText textEmail;
EditText textPassword;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
mAuth = FirebaseAuth.getInstance();
buttonLogin = (Button) findViewById(R.id.buttonLogin);
textEmail = (EditText) findViewById(R.id.editEmail);
textPassword = (EditText) findViewById(R.id.editPassword);
mAuthListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user != null) {
// User is signed in
Log.d("LOG_Login", "onAuthStateChanged:signed_in:" + user.getUid());
} else {
// User is signed out
Log.d("LOG_Login", "onAuthStateChanged:signed_out");
}
// ...
}
};
buttonLogin.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on clic
mAuth.signInWithEmailAndPassword(textEmail.getText().toString(),textPassword.getText().toString())
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
Log.d("LOG_Login", "signInWithEmail:onComplete:" + task.isSuccessful());
// If sign in fails, display a message to the user. If sign in succeeds
// the auth state listener will be notified and logic to handle the
// signed in user can be handled in the listener.
if (!task.isSuccessful()) {
Log.w("LOG_Login", "signInWithEmail", task.getException());
Toast.makeText(getApplicationContext(), "Authentication failed.", Toast.LENGTH_SHORT).show();
}
// ...
}
});
}
});
}
}
我使用的Android Studio 2.2中
我已经创建了一个项目中火力地堡
我已经与我的应用程序这个GUI
答
内如果我移动火力召唤出onClickListener那么错误去的按钮,
我不能很明白为什么该方法不能从按钮调用中访问
因为this
是您在匿名类中使用它时的点击侦听器。
该方法需要一个Activity作为addOnCompleteListener
的第一个参数,而不是OnClickListener。
.addOnCompleteListener(LoginActivity.this, ...
感谢您的帮助,合作),我曾试图getApplicationContext(一种享受,但这种没有工作 – PowerMan2015
呀,不知道为什么它需要一个活动,我不得不去看看文档 –