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类检查数据的变化类型(ADDEDMODIFIEDREMOVED)。你可以在这里看看这个例子: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 中的数据?

没有AlertDialog的android中的多选微调器

当页面数据未从 Firebase 完全加载时显示加载指示器/微调器 - Flutter

Android防止双击微调器

Spinner 不显示数组和文本

Android微调器下拉图标不显示