SwiftUI / Firebase:我可以使用@Published 向 Firebase 数据库发送和接收单个值吗?
Posted
技术标签:
【中文标题】SwiftUI / Firebase:我可以使用@Published 向 Firebase 数据库发送和接收单个值吗?【英文标题】:SwiftUI / Firebase: Can I send and receive a single value to Firebase Database using @Published? 【发布时间】:2021-02-08 15:33:21 【问题描述】:我想获取当前计数以更新到我的 Firebase。
我正在制作一个基本的计数计数器,我希望它能够跨设备实时更新。
Firebase 身份验证已配置并链接到应用。
class CurrentCount: ObservableObject
@Published var count = 0
struct HomeScreen : View
@ObservedObject var UserCount = CurrentCount()
var body: some View
ZStack
VStack
Button(action:
self.UserCount.count -= 1
)
Image(systemName: "minus")
.foregroundColor(Color("Color"))
.scaleEffect(2)
.padding()
.frame(minWidth:1000, maxWidth: 1000)
.frame(minHeight:450, maxHeight: 450)
Button(action:
)
Text("\(UserCount.count)")
.foregroundColor(Color("Color"))
.font(.system(size: 100))
.padding()
.onLongPressGesture
self.UserCount.count = 0
Button(action:
self.UserCount.count += 1
)
Image(systemName: "plus")
.foregroundColor(Color("Color"))
.scaleEffect(2)
.padding()
.frame(minWidth:1000, maxWidth: 1000)
.frame(minHeight:450, maxHeight: 450)
Image of View
【问题讨论】:
您是否已经知道如何从 Firebase 发送/接收数据并且只是在寻找与 SwiftUI 的连接,或者您是否还需要与 Firebase 相关的代码? 我对这个过程很熟悉,但我不会说我知道。希望能在正确的方向上得到推动。我的理想结果是为每个操作更新 $count,但我不确定如何触发它。请原谅我的业余词汇。我已经在互联网上搜索过,但是大量的教程非常复杂。 查看这个 Firebase 扩展:它可能正是您所需要的:github.com/firebase/extensions/tree/master/firestore-counter。它也有一个 ios 客户端:github.com/firebase/extensions/blob/master/firestore-counter/… 【参考方案1】:我认为您最好在您的 ObservableObject
中创建一个从您的按钮调用的辅助函数。在同一个对象中,您可以在 init 中为实时更新设置一个侦听器,以便在任何更改时都收到通知(请注意,如果您的应用程序是唯一更改数据的东西并且您没有在侦听外部来源,您可以避免进行实时更新,而只需在 init 中获取第一个初始值):
class CurrentCount: ObservableObject
@Published var count = 0
init()
//connect to Firebase here and listen for real-time updates: https://firebase.google.com/docs/database/ios/read-and-write#listen_for_value_events
func updateCount(newCount: Int)
count = newCount
//send the value to Firebase here as well
//https://firebase.google.com/docs/database/ios/read-and-write#basic_write
要了解有关在 Firebase 中获取/设置信息的详细信息,
【讨论】:
以上是关于SwiftUI / Firebase:我可以使用@Published 向 Firebase 数据库发送和接收单个值吗?的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 SwiftUI 从 Firebase / Firestore 中删除文档
SwiftUI 在使用 Firebase 单击注销时隐藏 TabView