Есть ли способ узнать текущее состояние пользователя при входе в Firebase? - PullRequest
0 голосов
/ 11 сентября 2018

Я хочу знать, вводит ли пользователь электронную почту или вводит пароль.Есть ли способ узнать это?

Ответы [ 3 ]

0 голосов
/ 11 сентября 2018

Если вы используете предопределенный пользовательский интерфейс Firebase Auth ( FirebaseUI ), вы не сможете получить доступ к событиям. Как вы можете видеть в документах, вы не можете получить к нему доступ или изменить его.

Если вы внедряете Firebase Auth по ' hard way ', где вы настраиваете пользовательский интерфейс входа (например, editText), тогда у вас будет больше возможностей для настройки и вы сможете обнаруживать события пользовательского интерфейса. элементы. Предполагая, что editText для имя пользователя равно username.

username.setOnFocusChangeListener(new OnFocusChangeListener() {
    @Override
    public void onFocusChange(View view, boolean hasFocus) {
        if (hasFocus) {
            Toast.makeText(getApplicationContext(), "The User is Entering Username", Toast.LENGTH_LONG).show();
        } 
    }
});

Причина использования onFocus() вместо других событий заключается в том, что этот шаг прост и не занимает много памяти, поэтому вы можете достичь желаемого без значительных вложений в ресурсы, которые могут повлиять на производительность вашего приложения.

0 голосов
/ 16 сентября 2018

это главная страница -

    private FirebaseUser current_state;
private FirebaseAuth mAuth;

onCreate{
mAuth = FirebaseAuth.getinstance();
}

 onStart - method - {
    currentState = mAuth.getCurrentUser()

 if(currentState == null){
 intent it to sign in page;
}

}

Надеюсь, это поможет.

0 голосов
/ 11 сентября 2018

Есть несколько способов сделать это, один может использовать onClickListener в поле editText по вашему выбору, а затем использовать флаг, чтобы узнать вот так:

password.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                flag = 1;
                if(flag==1)
                 Log.i("read", "user is entering password");

            }
        });

Или вы можете просто использовать onTextChangeListener() вот так:

password.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                flag=0;
            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                flag=1;
            }

            @Override
            public void afterTextChanged(Editable s) {
                flag=2;
            }
        });

        //Now you can track flag according to its value to know what is user doing with the password field
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...