android - 为什么我不能将数据放入 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。
解决方案
只是为了给这篇文章一个答案:
正如 Tom Bailey 正确评论的那样,上面的代码使用了 update() 操作。在这个官方文档中,您可以找到有关 set() 和 update() 操作的非常有用的信息。
TL:博士
Set():创建或覆盖单个文档。如果文档不存在,则会创建它。如果文档确实存在,则其内容将被新提供的数据覆盖。
Update():更新文档的某些字段而不覆盖整个文档。
推荐阅读
- php - 全新结帐后运行“composer install”时“未设置外观根目录”
- php - 如何修复 PHP 中的“Cannot GET/POST /connectivity.php”错误
- c# - 在 C# 中将代码从 if 语句更改为 switch 语句
- android - 当值数据变为空时,datasnapshot 键出现
- ffmpeg - 如何使用 ffmpeg 将两个视频与一个 mp3 合并?
- angular-material - 在 Material Progress Spinner 中显示图像
- node.js - 向 Stripe 索取所有费用 - 承诺错误
- asp.net-core - Asp.Net Core 日志语句未显示在 Application Insights 中
- c# - 无法在我的 C# 项目中访问 Windows 输入模拟器
- sql - 为什么我在此数据库查询中收到列标题错误,而不是使用传递的字符串进行过滤?