android - 无效的文档引用。文档引用必须有偶数个段,但 mylist 有 1

标签 android firebase google-cloud-firestore

在运行此代码时,我收到以下错误:

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();
                                        }
                                    }
                                });
            }
        });

最佳答案

您需要通过集合中的文档 ID 来识别文档。你给了一个集合 id “mylist”,但没有文档 id。 usernameTxtBx可能为空 - 这不是有效的文档 ID。

关于android - 无效的文档引用。文档引用必须有偶数个段,但 mylist 有 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52389663/

相关文章:

android - 如何更改 Action 栏sherlock的文字颜色

android - OnKeyListener 和 OnEditorActionListener 之间的确切区别是什么?

java - LayoutResultCallback() 在 LayoutResultCallback 中不公开;生成pdf时无法从外部包错误访问

android - 使用 Retrofit 获取 api

database - Firebase 的喜欢/不喜欢功能

javascript - 试图列出 Firestore 数据库的集合

reactjs - Firebase + Nextjs - 用户 session 共享

javascript - Geofire + 无限滚动 - 可以吗?

android - 使用方法返回值调用 firebase Firestore 时无法获取变量中的数据

firebase - Firebase 云功能的 SSL 证书