首页 > 解决方案 > Repository 类和 Firebase +with Room DB

问题描述

我想让 firebase 数据库与房间 Db trow 存储库类进行通信,但我无法做到这一点。我尝试将所有数据从 firebase 保存到房间 Db 并根据用户请求更新所有字段,我也知道firebase 离线功能,但我想让我的应用程序运行流畅和快速,并且还通过 android 架构组件提供良好的 UI 体验。如果我检索主要活动中的所有数据并通过创建新对象来更新房间数据库会很好吗?我已经设法创建了 Room Db,但下一步是建立与 firebase 的连接。

public class UsersRepository {

    private Context context;
    private Database database;
    private UsersDao usersDao;
    private LiveData<List<Users>> usersList;

    public UsersRepository(Application application) {

        ///room Db
        database=Database.getDatabase(application);
        usersDao = database.usersDao();
        usersList= usersDao.getAllUsers();
        
    }

    public LiveData<List<Users>> getAllUsers(){
        return database.usersDao().getAllUsers();
    }

    public void insertUsers(Users users){
        new AsyncTask<Void, Void, Void>() {
            @Override
            protected Void doInBackground(Void... voids) {

                database.usersDao().insertUser(users);

                return null;
            }
        }.execute();
    }


    public void updateUsers( Users users){

        new AsyncTask<Void, Void, Void>() {
            @Override
            protected Void doInBackground(Void... voids) {
                database.usersDao().updateUser(users);
                return null;
            }
        }.execute();
    }

    @SuppressLint("StaticFieldLeak")
    public void deleteUsers(final Users users){

        new AsyncTask<Void, Void, Void>() {
            @Override
            protected Void doInBackground(Void... voids) {
                database.usersDao().deleteUser(users);
                return null;
            }
        }.execute();
    }


}

标签: androidfirebase-realtime-databaseandroid-room

解决方案


推荐阅读