如果我有一个Firebase Firestore数据库,我已为右侧集合对应的文档检索到文档快照,并存储在文档变量中,那么我如何在“用户名”字段检索该文档快照中的值?该字段具有字符串值。
您需要执行DocumentResources
以获取文档中的内容。
简单的就是这样。
DocumentReference docRef = myDB.collection("users").document("username");
docRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()) {
DocumentSnapshot document = task.getResult();
if (document != null) {
Log.i("LOGGER","First "+document.getString("first"));
Log.i("LOGGER","Last "+document.getString("last"));
Log.i("LOGGER","Born "+document.getString("born"));
} else {
Log.d("LOGGER", "No such document");
}
} else {
Log.d("LOGGER", "get failed with ", task.getException());
}
}
});
缺点是您需要知道您的文档ID才能获取字段值。
您可以使用get方法来获取字段的值
String username = (String) document.get("username"); //if the field is String
Boolean b = (Boolean) document.get("isPublic"); //if the field is Boolean
Integer i = (Integer) document.get("age") //if the field is Integer
查看DocumentSnapshot
的文档
DocumentSnapshot有一个getString()方法,该方法采用字段的名称并以字符串形式返回其值。
String value = document.getString("username");
我试图设置一个聊天应用程序,在其中你可以搜索随机的用户交谈。现在,firestore中的数据库结构如下: 集合“users”-文档“userid”-集合“conversations”-文档“conversationid”-字段“partner”,“lastmessage” 其次,我有一个集合“conversations”,其中包含对话中的所有消息。 我现在尝试做的是,当你按下一个按钮时,应用程序将
我想从firestore中子文档的地图中获得特定的数据,并将其显示在我的web应用程序页面中。我真的不知道如何在部分调用数据。 注意:stages是一个字段映射 图片来帮助解决我的问题: 设置非映射字段的代码: 注意:已经是子文档中的非map字段,可以使用前面提到的代码轻松地从数据库中取出。
我有一个名为“posts”的Firebase Firestore集合,其结构如下: 我可以查询所有类别为“general”的博客文章,如:然而,我似乎无法找到一种方法来获取“类别”映射为空的所有文档。 我想查询“帖子”集合中的所有文档,其中有。我尝试了,但没有成功。我将如何获取这些数据?
我有一个文档集合,其中文档的id是用户id。让我们称这些为用户文档。 每个“用户文档”包含聊天消息的子集合。但并不是所有的“用户文档”都包含任何字段(数据,而不是子集合)。 我不想返回集合中没有任何字段但有子集合的所有文档,但我觉得这是不可能的? 此代码只返回包含字段的文档,而不是只有子集合的文档?有没有办法全部返回? 如何获取集合中所有文档id的列表?空的和非空的都有?或者,如果我不能访问没有字
我正在尝试优化我的应用程序在Firesbase上的读取次数,并回顾我使用快照监控实时更改的方式。假设我有一个快照,返回10个最新文档,如下所示: 医生说 每次查询结果更改时(即添加、删除或修改文档时),快照处理程序都会收到一个新的查询快照。 这是否意味着每次查询更改时,我都将被计费10次读取?在这个例子中,如果添加了一个新城市(所以使用最新的“日期添加”,所以在查询中排在第一位),它将是1(只是新
我正在尝试从Firebase的DocumentSnapshot中获取数据。 此方法完全正常并返回true,但是: 返回false... 有人有想法吗,为什么会这样?这只是我申请中的一个小问题,但我很好奇为什么会这样。只是为了理解。谢谢你! 编辑: 以下是购物车集合的屏幕截图: 以下是产品集合的屏幕截图: