android - 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();
}
}
解决方案
推荐阅读
- ios - 协议类型“名称”的值不能符合具有通用功能的协议“名称”
- firebase - Vuejs 路由器和 Firebase
- python - 一象限python的具体值
- java - 尝试在 Java 中运行 Selenium 时出错
- r - Ggplot2 改变条的颜色。错误 n 太大,调色板允许的最大值
- python - 如何在熊猫中清空字符串
- spring-mvc - Spring Cloud Kafka 绑定与同步 Rest 调用
- python - Python中带有while循环的简单猜测程序
- go - Go lang 从 up and running book 做一些 terraform 测试模块
- r - 如何创建一个数据框,其中包含通过随机采样另一个数据框创建的重复列?