【发布时间】:2021-06-25 04:38:29
【问题描述】:
由于 OnCompleteListener 的问题,我的 android 应用程序无法编译。我得到的具体错误是
错误:没有找到适合 addOnCompleteListener(,
我正在使用我的 android 应用程序执行用户身份验证系统,但由于某种原因,每当我编译应用程序时都会遇到此错误。我正在关注 Android Studios 的这个资源 (https://firebase.google.com/docs/android/setup)。非常感谢任何帮助以使我的用户身份验证正常工作并在我的 Firebase 上正确填充。
非常感谢您!
package com.example.hoptoit;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
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 MainActivity extends AppCompatActivity {
GoogleMap map;
private Marker marker;
private static final int LOCATION_PERMISSION_REQUEST_CODE = 1;
private boolean permissionDenied = false;
private LatLng Hopkins = new LatLng(39.33033283923643, -76.62053915767162);
private FirebaseAuth auth;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
auth = FirebaseAuth.getInstance();
Button buttonSignUp = (Button) findViewById(R.id.buttonSignUp);
EditText editTextEmail = (EditText) findViewById(R.id.editTextEmail);
EditText editTextPassword = (EditText) findViewById(R.id.editTextPassword);
TextView textViewResponse = (TextView) findViewById(R.id.textViewResponse);
editTextEmail.setText("");
editTextPassword.setText("");
// Check if user is signed in (non-null) and update UI accordingly.
FirebaseUser currentUser = auth.getCurrentUser();
if(currentUser != null){
updateUI(currentUser);
}
buttonSignUp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(v.getWindowToken(), 0);
if (TextUtils.isEmpty(editTextPassword.toString()) || TextUtils.isEmpty(editTextEmail.toString())) {
textViewResponse.setText("Email Address or Password is not provided");
} else {
System.out.println("This is blank maybe " + editTextEmail.getText().toString());
System.out.println("This is blank maybe " + editTextPassword.getText().toString());
auth.signInWithEmailAndPassword(editTextEmail.getText().toString(), editTextPassword.getText().toString())
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// Sign in success, update UI with the signed-in user's information
//Log.d(TAG, "signInWithEmail:success");
FirebaseUser user = auth.getCurrentUser();
updateUI(user);
} else {
// If sign in fails, display a message to the user.
// Log.w(TAG, "signInWithEmail:failure", task.getException());
// Toast.makeText(EmailPasswordActivity.this, "Authentication failed.",
//Toast.LENGTH_SHORT).show();
updateUI(null);
}
}
});
}
}
});
};
private void updateUI(FirebaseUser user) {
}
}
感谢某人之前的评论,我的应用程序终于能够编译,但由于某种原因,当用户输入用户名和密码时,终端告诉我 W/System:忽略标头 X-Firebase-Locale,因为它的值为 null。 我相信我始终连接了我的 Firebase 并启用了电子邮件身份验证,所以请告诉我我可能缺少哪些其他步骤,谢谢!
【问题讨论】:
标签: android firebase android-studio firebase-realtime-database firebase-authentication