是否将 hsahMap 传递到存储库 mvvm android

Is right pass hsahMap to repository mvvm android

你好,将 HashMap 传递给存储库中的函数是正确的

void sendComment(HashMap<String, String> data){
FirebaseDatabase.getInstance(). getRefrence().setValue(data);
}

然后在 viewmodel 中我创建了 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 更 memory-efficient,因为它避免了 auto-boxing 键,并且它的数据结构不依赖于每个映射的额外条目对象 取决于你的任务。

SparseArray<Int>().set(key , value)

您可以使用存储库更改任何对象(数据)以保存在数据库中或发送到服务器并更改任何对象(数据)以传递给 ui 和 viewModel 。