首页 > 解决方案 > 为什么我不能将数据放入 Firestore?

问题描述

我正在做一个简单的注册页面,但我遇到了问题。我无法将用户数据放入 firestore 数据库。我是用实时数据库做的,但是用 firestore 有一个问题,我不知道它是什么。这是代码:

CollectionReference UsersRef = FirebaseFirestore.getInstance().collection("Users");

    if (UsersRef != null) {

        HashMap<String, Object> userDataMap = new HashMap<>();
        userDataMap.put("phone",phoneNumber);
        userDataMap.put("password",password);
        userDataMap.put("name",name);

        UsersRef.document(phoneNumber).update(userDataMap).addOnSuccessListener(aVoid -> {

            // First TOAST
            Toast.makeText(RegisterActivity.this,"Congratulations, your account has been created.",Toast.LENGTH_SHORT).show();
            loadingBar.dismiss();

            startLoginActivity();

        }).addOnFailureListener(e -> {
            loadingBar.dismiss();

            //SECOND TOAST
            Toast.makeText(RegisterActivity.this,"Network error, please try again later",Toast.LENGTH_LONG).show();
        });

    } else {
        Toast.makeText(RegisterActivity.this,"Votre reference USERS n'a pas été créée",Toast.LENGTH_SHORT).show();
    }

我正在使用变量名称、电话号码和密码获取用户的输入。如果一切正常,就会出现第一个吐司。如果操作不起作用,则会出现第二个 toast。

标签: androidfirebasegoogle-cloud-firestore

解决方案


只是为了给这篇文章一个答案:

正如 Tom Bailey 正确评论的那样,上面的代码使用了 update() 操作。在这个官方文档中,您可以找到有关 set() 和 update() 操作的非常有用的信息。

TL:博士

Set():创建或覆盖单个文档。如果文档不存在,则会创建它。如果文档确实存在,则其内容将被新提供的数据覆盖。

Update():更新文档的某些字段而不覆盖整个文档。


推荐阅读