FirebaseAuth Facebook логин возвращает черный экран - PullRequest
1 голос
/ 01 мая 2020

У меня проблемы с использованием входа в 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>

Пожалуйста, помогите, и спасибо заранее

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...