- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我可以查询 Firestore 并手动获取 ID,但我使用的是 FirestoreRecyclerAdapter
,因为它附带了大量开箱即用的额外工作。所以,如果我有这样的代码:
FirebaseFirestore db = FirebaseFirestore.getInstance();
Query query = db.collection(COLLECTION_NAME)
.whereEqualTo("userId", USER_ID)
.limit(LIMIT);
FirestoreRecyclerOptions options = new FirestoreRecyclerOptions
.Builder<SomeEntity>()
.setQuery(query, SomeEntity.class)
.build();
FirestoreRecyclerAdapter adapter = new FirestoreRecyclerAdapter<SomeEntity, MyHolder>(options) {
@Override
public void onBindViewHolder(MyHolder holder, int position, SomeEntity model) {
// I need model ID here
}
}
因此,如果我使用 FirestoreRecyclerAdapter
,它会自动将我的 SomeEntity
类反序列化为 model
对象。这一切都很好,但现在我需要将监听器附加到列表中,并对模型 ID 使用react。现在,如果我手动反序列化 Firestore 中的对象,我会做这样的事情:
for (DocumentSnapshot document : task.getResult()) {
SomeEntity entity = document.toObject(SomeEntity.class).setId(document.getId());
list.add(entity);
}
但是,由于 FirestoreRecyclerAdapter
正在为我进行反序列化,所以我无法自己调用 document.getId()
。当我使用 onBindViewHolder
方法时,我无法再访问文档 ID。是否缺少某种方法,某种从我忽略的适配器中检索 ID 的方法?
请注意,我不认为将 ID 冗余存储为字段是一种解决方案。我宁愿继承并重写 FirestoreRecyclerAdapter
,但我更愿意在不做太多工作的情况下解决这个问题。
最佳答案
当您需要文档 ID 时,您应该已经对所处理的项目有所了解。通常这将是项目在列表中的位置。 IE。当用户单击一个项目时,单击处理程序将传递该项目的 ID。如果您有 position
,您可以通过以下方式从适配器获取 DataSnapshot
:
adapter.getSnapshots().getSnapshot(position);
因此,如果您想获取 ID,您可以通过以下方式获取它:
String id = adapter.getSnapshots().getSnapshot(position).getId();
关于android - 有没有办法从 FirestoreRecyclerAdapter 获取项目的文档 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49708212/
我正在更新我的应用程序以使用 Firebase 的 Firestore 数据库。我正在努力让应用程序显示从数据库中检索到的数据。数据检索正常,但未显示。通过设置断点,我已经确定 ViewHolder
我正在关注 this tutorial ,据此,当我启动我的应用程序时,我应该能够看到已添加到 Firestore 的项目(文档)。但这正在发生 onCreateViewHolder仅当我点击 tex
我想知道如何才能发现 FirestoreRecyclerAdapter 仅是空的。通过下面的代码,我可以发现它是否有一个或多个实例,但它不会准确地告诉我它什么时候里面没有对象。验证 if(adapte
FirebaseUI-Android 在使用 FirebaseRecyclerAdapter 时提供索引查询。这在访问 Firebase Realtime DB 数据时效果很好,如下所述:https:
我正在开发一个 Android 应用程序,我需要对我的 Firestore 数据库进行复杂的查询并创建一个 FirestoreRecyclerAdapter。要创建适配器,我需要一个接受输入整个查询的
我有一个如下所示的查询: Query first = ref.orderBy("name", Query.Direction.ASCENDING).limit(10); 这就是我将数据显示到我的 Re
我的应用程序中有一个 FloatingSearchView,用于对我的 Firestore 数据库执行一些查询。当我检查每个查询的大小时,结果符合预期,但我的 View 没有随结果更新。我不明白这是查
我可以查询 Firestore 并手动获取 ID,但我使用的是 FirestoreRecyclerAdapter,因为它附带了大量开箱即用的额外工作。所以,如果我有这样的代码: FirebaseFir
从 Firestore 的 Firebase-UI RecyclerView 中删除项目的正确方法是什么? 这是我的方法: new ItemTouchHelper(new ItemTouchHelpe
使用新的 firestore 如何从适配器获取 key (文档 ID)? 使用 Firebase 数据库,我们可以使用 String key = this.getRef(position).getKe
我正在尝试 FirestoreRecyclerAdapter,并且数据正在加载并且可以在调试器中正常看到。但是,当我尝试将 TextView 设置为等于某些数据时,它会崩溃,因为 TextView 为
我正在使用 RecyclerView 来显示来自 Firestore 数据库的一些数据。出于显而易见的原因,我将 FirestoreRecyclerAdapter 用作适配器。我在我的 Recycle
我有两个问题: Query firstQuery = ref.orderBy("name", Query.Direction.ASCENDING).limit(10); getData(firstQu
我的 android 项目有两个模型 - Track 和 Artist。 Track用于获取Track相关信息,Artist用于获取Artist相关详情。 以下是每个模型的示例代码: Track.cl
这个问题在这里已经有了答案: How to paginate Firestore with Android? (3 个答案) 关闭 3 年前。 我已经在 https://firebase.googl
我正在使用 Firestore 来存储“图表”集合。我需要查询集合以获取所有具有登录用户 ID 的图表。我有一个显示适当图表的 FirebaseRecyclerAdapter(查询通过 Firesto
我想在列表中显示服务器时间戳(实际上是日期)。 FirestoreRecyclerAdapter 由此类提供(仅保留与时间戳相关的方法): public class Lista { priva
在我的 Android 应用程序中,我使用 firebase-UI 中的 FirestoreRecyclerAdapter它绑定(bind)Query和Model。当应用程序离线时,我需要它不显示任何
firestore 回收器适配器 没有获取任何数据,我发现了上述错误。我搜索过,但没有人给出明确的答案。 我使用 EditText 和图像按钮进行搜索。 我正在使用身份验证,因此我不会这样做,这是否会
我是一名优秀的程序员,十分优秀!