我需要 ViewModel 来向数据库添加信息吗?

Do I need ViewModel for adding information to database?

我正在开发一个 Android 应用程序,我从用户那里获取条目并将它们添加到 Firebase 以供将来检索,但我对此感到困惑我是否需要一个 viewModel 来执行此操作。 所以,我知道我们需要 viewModels 来处理业务逻辑,例如从 API 或数据库中获取数据,但我不知道将数据添加到 Firebase 时是否有必要。如果是这样,我将无法访问用户从 viewModel 输入数据的视图。

你能解释一下我需要 viewModel 吗?如果需要,如何从 viewModel 访问这些视图?

I know we need view models for business logic.

是的,没错。建议将您的业务逻辑放在 ViewModel 中,因为它应该充当我们的 UI 和您的应用程序其余部分之间的连接器。除此之外,请记住 ViewModel 它是一个 class 旨在存储和管理生命周期感知的 UI-related 数据。它允许数据在屏幕旋转等配置更改后继续存在。

but I have no idea about that Is it necessary when adding data to Firebase.

是的,应该通过 ViewModel 管理读取和写入操作。

If it does, I can't access the views where users enter data from a ViewModel.

视图不应存在于 ViewModel class 中。您应该只拥有可以从 activity 或片段中观察到的对象。

how to access these views from ViewModel?

恰恰相反。您从 activity 或片段 classes 访问(观察)ViewModel class 中的数据。我也写了两篇文章可以帮助你理解这个概念:

虽然视图模型是自定义的并且可以提高代码的可读性,但这不是必需的。除了视图模型,您还可以通过 Map 对象和原始数据类型处理与数据库的所有交互。

如果您使用的是 Firestore,那实际上是大多数文档所做的,例如 adding all types of data 上的文档。对于 Firebase 的实时数据库,同样的逻辑适用,尽管文档只显示了带有视图模型对象的示例。