Android微调器没有显示Firebase实时数据库数据?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android微调器没有显示Firebase实时数据库数据?相关的知识,希望对你有一定的参考价值。
一段时间以来我一直遇到麻烦。我想在android studio中创建一个微调器并使用firebase数据库。但我似乎无法让微调器在微调器中显示任何数据库的数据。我试图遵循一些类似的问题,但我遇到了同样的问题。由于我是Firebase的新手,因此我不确定如何实际创建索引以从中获取。
这是我目前的代码:
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference fDatabaseRoot = database.getReference("locations");
fDatabaseRoot.child("buildings").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
final List<String> buildings = new ArrayList<>();
for (DataSnapshot buildingSnapshot: dataSnapshot.getChildren()) {
String buildingName = buildingSnapshot.child("buildingName").getValue(String.class);
buildings.add(buildingName);
}
Spinner buildingSpinner = findViewById(R.id.spinner);
ArrayAdapter<String> buildingAdapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_spinner_item, buildings);
buildingAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
buildingSpinner.setAdapter(buildingAdapter);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});`
以下是我的数据库设置方式:Firebase Spinner Database
答案
这是SnapshotListener
的FirebaseFirestore实现。您可以通过DocumentChange类检查数据的变化类型(ADDED
,MODIFIED
,REMOVED
)。你可以在这里看看这个例子:https://firebase.google.com/docs/firestore/query-data/listen#view_changes_between_snapshots
FirebaseFirestore db= FirebaseFirestore.getInstance();
db.collection("locations").document("buildings").addSnapshotListener(new EventListener<QuerySnapshot>() {
@Override
public void onEvent(@Nullable QuerySnapshot snapshots,
@Nullable FirebaseFirestoreException e){
//your action here
}
);
另一答案
好吧,使用实时数据库我必须将读写规则切换为true,完全忘了这样做。
记住小孩总是做你的功课。 :)
以上是关于Android微调器没有显示Firebase实时数据库数据?的主要内容,如果未能解决你的问题,请参考以下文章
如何通过微调器过滤 FirebaseRecyclerOptions 中的数据?