Hi是将HashMap右传给存储库中的函数
void sendComment(HashMap<String, String> data){
FirebaseDatabase.getInstance(). getRefrence().setValue(data);
}
在视图模型中,我创建了HashMap var,并像一样为其添加密钥和值
HashMap<String, String> data=new HashMap<>();
data.add("commentText","any text");
data.add("senderId","any text");
data.add("postId","any text");
repo.sendComment(data);
这是真的吗?还是应该添加参数senderId、postId、commentText在存储库中的功能中像
void sendComment(String postId,String senderId){
//Add to database code
}
首先,您可以使用SparseArray而不是HashMap。因为SparseArray的内存效率比HashMap高,因为它避免了自动装箱键,而且它的数据结构不依赖于每个映射的额外入口对象取决于你的任务。
SparseArray<Int>().set(key , value)
您可以使用存储库来更改要保存在DB中的任何对象(数据(,或者发送到服务器并更改要传递到ui和viewModel的任何对象。