Неверная ссылка на документ.Ссылки на документы должны иметь четное количество сегментов, но mylist имеет 1 - PullRequest
0 голосов
/ 18 сентября 2018

Во время выполнения этого кода я получаю сообщение об ошибке:

Invalid document reference. Document references must have an even number of segments

Но у mylist есть 1 ".

Может кто-нибудь, пожалуйста, помогите мне в этом.

public class LoginActivity extends AppCompatActivity {


    TextView textNewUser, textForgotPassword;
    TextInputEditText username, password;
    Button loginBtn;


    String passwordTxtBx, usernameTxtBx;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.login);


        username = findViewById(R.id.userNameInputTxt);
        password = findViewById(R.id.passwordInputTxt);
        loginBtn = findViewById(R.id.loginBtn);

        usernameTxtBx = username.getText().toString();
        passwordTxtBx = password.getText().toString();

        final FirebaseFirestore database = FirebaseFirestore.getInstance();
        final DocumentReference usernameDocument = database.document("mylist/" + usernameTxtBx);

        loginBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                        usernameDocument.get()
                                .addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
                                    @Override
                                    public void onComplete(@NonNull Task<DocumentSnapshot> task) {
                                        if (task.isSuccessful()){
                                            DocumentSnapshot document = task.getResult();
                                            if(document.exists()){
                                                Toast.makeText(LoginActivity.this, "User exist", Toast.LENGTH_SHORT).show();
                                            } else {
                                                Toast.makeText(LoginActivity.this, "No user", Toast.LENGTH_SHORT).show();
                                            }
                                        } else {
                                            Toast.makeText(LoginActivity.this, "Some error", Toast.LENGTH_SHORT).show();
                                        }
                                    }
                                });
            }
        });

Ответы [ 2 ]

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

Я получил решение.Только что переместил нижние строки из onCreate () в обработчик кликов loginBtn.

            usernameTxtBx = username.getText().toString();
            final FirebaseFirestore database = FirebaseFirestore.getInstance();
            final DocumentReference usernameDocument = database.document("mylist/" + usernameTxtBx);
0 голосов
/ 18 сентября 2018

Вам необходимо идентифицировать документ по идентификатору документа в коллекции.Вы указали идентификатор коллекции "mylist", но не указали идентификатор документа.usernameTxtBx, вероятно, пусто - это недопустимый идентификатор документа.

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