📌  相关文章
📜  如何在 Android Studio 中使用 FirebaseUI 使用 Firebase 数据填充 RecyclerView(1)

📅  最后修改于: 2023-12-03 14:52:12.122000             🧑  作者: Mango

如何在 Android Studio 中使用 FirebaseUI 使用 Firebase 数据填充 RecyclerView

FirebaseUI 是 Firebase 团队开发的一个库,它可以用来简化从 Firebase 数据库和存储中获取数据的过程。在本文中,我将向您展示如何使用 FirebaseUI 填充 RecyclerView,让您的 Android 应用程序具备更好的用户体验。

环境要求

在编写本文时,以下是支持 FirebaseUI 的软件版本:

  • Android Studio 3.6 或更高版本
  • FirebaseUI 版本 6.7.0 或更高版本
  • Firebase 版本 16.0.0 或更高版本
步骤
步骤 1:在 Android Studio 中添加 FirebaseUI

首先,您需要在您的项目中添加 FirebaseUI。要添加 FirebaseUI,只需添加以下依赖项:

dependencies {
    // FirebaseUI for Firebase Realtime Database
    implementation 'com.firebaseui:firebase-ui-database:6.7.0'

    // FirebaseUI for Cloud Firestore
    implementation 'com.firebaseui:firebase-ui-firestore:6.7.0'

    // FirebaseUI for Firebase Storage
    implementation 'com.firebaseui:firebase-ui-storage:6.7.0'
}
步骤 2:准备您的 RecyclerView 和 Adapter

在本文中,我将使用以下 RecyclerView:

<androidx.recyclerview.widget.RecyclerView
   android:id="@+id/recycler_view"
   android:layout_width="match_parent"
   android:layout_height="match_parent"/>

在这个 RecyclerView 中,我将显示从 Firebase 数据库中检索的数据。由于 FirebaseUI 需要一个 FirebaseRecyclerAdapter 来填充 RecyclerView,因此您还需要创建一个 FirebaseRecyclerAdapter。

public class MyAdapter extends FirebaseRecyclerAdapter<String, MyAdapter.ViewHolder> {

    public MyAdapter(FirebaseRecyclerOptions<String> options) {
        super(options);
    }

    class ViewHolder extends RecyclerView.ViewHolder {

        TextView textView;

        ViewHolder(@NonNull View itemView) {
            super(itemView);
            textView = itemView.findViewById(R.id.text_view);
        }
    }

    @Override
    protected void onBindViewHolder(@NonNull ViewHolder holder, int position, @NonNull String model) {
        holder.textView.setText(model);
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item, parent, false);
        return new ViewHolder(view);
    }
}

在这个 Adapter 中,我创建了一个 ViewHolder 来展示 RecyclerView 中的每个项目。我还在 onBindViewHolder 方法中设置了 ViewHolder 的数据。最后,我重写了 onCreateViewHolder 方法,以便在 RecyclerView 中创建 ViewHolder。

步骤 3:准备您的数据

在本文中,我将从 Firebase 数据库中获取数据。为此,您需要为 Firebase 设置所需的配置。请注意,此操作的方式因您的使用情况而异。

当您一旦获得了适当的 Firebase 配置,您需要根据您实际使用的 Firebase 数据库或存储类型,将 FirebaseRecyclerOptions 作为构造参数传递给适当的 Firebase 数据库或存储引用。

例如,如果您要从 Firebase 数据库中获取值,请使用以下代码:

FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference reference = database.getReference("my/data/path");

FirebaseRecyclerOptions<String> options =
        new FirebaseRecyclerOptions.Builder<String>()
                .setQuery(reference, String.class)
                .build();

在这个例子中,我首先获取了一个 Firebase 数据库引用。然后,我使用此引用创建了一个 FirebaseRecyclerOptions,其中包含该引用的查询结果中的所有值。最后,我将选项传递给 Adapter。

步骤 4:将 Adapter 设置到 RecyclerView 中

最后一步是将准备好的 FirebaseRecyclerAdapter 设置到 RecyclerView 中:

RecyclerView recyclerView = findViewById(R.id.recycler_view);

MyAdapter adapter = new MyAdapter(options);
recyclerView.setAdapter(adapter);

在这个例子中,我获取了一个 RecyclerView 并创建了一个 Adapter。最后,我将 Adapter 设置到 RecyclerView 中。

结论

FirebaseUI 是一个简化从 Firebase 数据库和存储中检索数据的方法。在本文中,我向您展示了如何使用 FirebaseUI 填充 RecyclerView。如果您想学习更多关于 FirebaseUI 的内容,可以查看 FirebaseUI 文档:https://github.com/firebase/FirebaseUI-Android.