У меня проблемы с использованием входа в FirebaseAuth на Facebook. Всякий раз, когда я пытаюсь нажать кнопку входа в Facebook, приложение возвращает черный экран
public class LoginActivity extends AppCompatActivity {
//region Properties
private static final int MY_REQUEST_CODE = 7117;
private FirebaseAuth mAuth;
private FirebaseFirestore db;
FirebaseUser currentUser;
private String[] role = {"Customer", "Employee", "Admin"};
//endregion
@Override
protected void onStart() {
super.onStart();
currentUser = mAuth.getCurrentUser(); // Get current user that is logged in
if (currentUser != null) { // Go to MainActivity if user is already logged in
startActivity(new Intent(LoginActivity.this, MainActivity.class));
Toast.makeText(this, "Welcome " + currentUser.getDisplayName(), Toast.LENGTH_SHORT).show();
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
mAuth = FirebaseAuth.getInstance();
db = FirebaseFirestore.getInstance();
showSignInOptions();
}
private void showSignInOptions() {
List<AuthUI.IdpConfig> providers = new ArrayList<>();
// Initialize required providers
providers.add(new AuthUI.IdpConfig.EmailBuilder().build());
providers.add(new AuthUI.IdpConfig.FacebookBuilder().build());
providers.add(new AuthUI.IdpConfig.GoogleBuilder().build());
//Create custom layout for Firebase UI
AuthUI.SignInIntentBuilder builder = AuthUI.getInstance().createSignInIntentBuilder();
AuthMethodPickerLayout loginLayout = new AuthMethodPickerLayout
.Builder(R.layout.activity_login)
.setEmailButtonId(R.id.email_button)
.setFacebookButtonId(R.id.facebook_button)
.setGoogleButtonId(R.id.google_button)
.build();
// Start Firebase UI
startActivityForResult(
builder.setAuthMethodPickerLayout(loginLayout)
.setAvailableProviders(providers)
.setTheme(R.style.AppThemeFirebaseAuth)
.setIsSmartLockEnabled(false)
.build(), MY_REQUEST_CODE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
LoginManager.getInstance().logInWithReadPermissions(LoginActivity.this, (Arrays.asList("public_profile", "user_friends","user_birthday","user_about_me","email")));
if (requestCode == MY_REQUEST_CODE) {
IdpResponse response = IdpResponse.fromResultIntent(data);
if (resultCode == RESULT_OK) {
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
startActivity(new Intent(LoginActivity.this, MainActivity.class));
Toast.makeText(this, "Welcome " + user.getDisplayName(), Toast.LENGTH_SHORT).show();
userRegistrationDB();
} else {
Toast.makeText(this, "" + response.getError().getMessage(), Toast.LENGTH_SHORT).show();
}
}
}
public void userRegistrationDB() { // Add user to Cloud Firestore Document
Map<String, Object> _user = new HashMap<>();
_user.put("email", currentUser.getEmail());
_user.put("name", currentUser.getDisplayName());
_user.put("roles", role[0]);
_user.put("uid", currentUser.getUid());
db.collection("Users").document(currentUser.getUid()).set(_user, SetOptions.merge())
.addOnCompleteListener(task -> {
if (task.isSuccessful()) {
Log.d("Added User", "Successfully added user to DB");
}
}).addOnFailureListener(e -> Log.w("Added user", "Failed to add user to DB", e));
}
Логин Google и адрес электронной почты, но не Facebook. Я также добавил SHA1 в консоль Firebase, но он все еще не работает
Facebook работал раньше, но я не понимаю, как он больше не работает.
Мои строки. xml
<string name="facebook_application_id" translatable="false">5158xxxxxxxxxxx</string>
<string name="fb_login_protocol_scheme">fb5158xxxxxxxxxxx</string>
Пожалуйста, помогите, и спасибо заранее