我需要 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 的实时数据库,同样的逻辑适用,尽管文档只显示了带有视图模型对象的示例。
我正在开发一个 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 的实时数据库,同样的逻辑适用,尽管文档只显示了带有视图模型对象的示例。