- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用 Firestore 来存储“图表”集合。我需要查询集合以获取所有具有登录用户 ID 的图表。我有一个显示适当图表的 FirebaseRecyclerAdapter(查询通过 FirestoreRecyclerOptions 传入)。
但是,我需要访问每个图表的文档 key ,但我不知道如何获取该信息。理想情况下,我想在从数据库中检索图表后立即将其设置为图表模型中的变量,但“ map ”似乎没有提供将文档键映射到模型中的值的方法.如果无法做到这一点,那么另一种解决方案就是在 BindViewHolder 中检索它并将其存储在不可见的 View 中以供稍后读取。
在我的主要 Activity 中我有:
FirestoreRecyclerOptions<Chart> recyclerOptions = new FirestoreRecyclerOptions.Builder<Chart>()
.setQuery(mChartsQuery, Chart.class)
.build();
mAdapter = new ChartListAdapter(recyclerOptions, this.getActivity());
mChartsQuery 获取具有特定用户 ID 的图表。
图表是这样创建的(用户在表单字段中输入了“nameString”):
Map<String, Object> newChart = new HashMap<>();
newChart.put("uid", userId);
newChart.put("name", nameString);
mDatabase.collection("charts")
.add(newChart)
.addOnSuccessListener(new OnSuccessListener<DocumentReference>() {...});
我的 ChartListAdapter 类是:
public class ChartListAdapter
extends FirestoreRecyclerAdapter<Chart, ChartViewHolder> {
public ChartListAdapter(FirestoreRecyclerOptions recyclerOptions) {
super(recyclerOptions);
}
@Override
protected void onBindViewHolder(ChartViewHolder holder, int position, Chart model) {
// THIS IS WHERE I NEED THE DOCUMENT ID, SO I CAN
// PASS IT INTO THE INTENT AS EXTRA_CHART_KEY
// Set click listener for the chart
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getActivity(), ChartViewActivity.class);
intent.putExtra(ChartViewActivity.EXTRA_CHART_KEY, chartKey);
startActivity(intent);
}
});
// Bind Chart to ViewHolder
holder.bindToChart(model);
}
@Override
public ChartViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_chart, parent, false);
return new ChartViewHolder(view);
}
}
因此,我需要能够在 onBindViewHolder 中检索文档 ID。我找到了一个解决方案,它说使用 getSnapshots().get(position).getKey();
但是 getSnapshots().get(position)
只是检索一个图表,其中没有设置 key 。
最佳答案
找到解决方案...在我使用的 onBindViewHolder 中
getSnapshots().get(position).getKey();
但应该是
getSnapshots().getSnapshot(position).getId();
正确的版本工作正常,并获取文档 ID。
关于android - 使用 FirestoreRecyclerAdapter 时如何获取 Firestore 文档 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50181956/
我正在更新我的应用程序以使用 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 和图像按钮进行搜索。 我正在使用身份验证,因此我不会这样做,这是否会
我是一名优秀的程序员,十分优秀!