gpt4 book ai didi

firebase-authentication - 具有简洁架构的 Firebase Phone Auth

转载 作者:行者123 更新时间:2023-12-05 05:40:10 27 4
gpt4 key购买 nike

我正尝试在我的基于整洁架构的项目中实现 Firebase Phone Auth。我对 PhoneAuthOptions 类感到困惑,该类的构建器一方面需要事件(属于表示层),另一方面需要 auth(属于数据层)。如何在不违反 Clean Architecture 中的代码解耦原则的情况下,同时为该构建器提供 activity 和 auth?

val options = PhoneAuthOptions.newBuilder(auth)
.setPhoneNumber(phoneNumber) // Phone number to verify
.setTimeout(60L, TimeUnit.SECONDS) // Timeout and unit
.setActivity(this) // Activity (for callback binding)
.setCallbacks(callbacks) // OnVerificationStateChangedCallbacks
.build()
PhoneAuthProvider.verifyPhoneNumber(options)

最佳答案

老实说,我认为对 Android 的理解有点困惑。如果你看到叔叔的鲍勃照片:

https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html

DB和UI在同一层。这就是让应用程序整洁的原因——这些东西是实现细节。内层不关心您使用的是 Room 还是其他 SQL 库,OKHttp 或 HttpUrlConnection。这样的库隐藏在接口(interface)后面。整洁架构位于“控制反转”之上。

https://en.wikipedia.org/wiki/Inversion_of_control

基本上,内层是纯 Java/Kotlin 模块。它们在它们所依赖的相同模块中声明了接口(interface)。外层实现接口(interface)。

我认为这种从上到下的方式(来自 Google 文档)乍一看更容易理解,但它损害了对 Bob 大叔想要实现的目标的理解。

我建议您检查一下这种方法,最终您有 2 个模块: https://www.raywenderlich.com/3595916-clean-architecture-tutorial-for-android-getting-started

检查它的外观:

https://koenig-media.raywenderlich.com/uploads/2019/06/architecture-overview-650x343.png

另外,想一想 - 表示层是您需要呈现某些内容的时候。您在支持的应用程序中是否有表示层?你那里有用户界面吗?但是到底能不能整洁呢?是的,它可以。所以你想放在同一个地方的是“Android 的东西”。它们是您的实现细节。

因此,当您从那个角度来看时 - Activity 和 PhoneAuthOptions 将完美相处,您仍然会很整洁。 :)

关于firebase-authentication - 具有简洁架构的 Firebase Phone Auth,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72455050/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com