gpt4 book ai didi

objective-c - 将 Firebase 引用发送到 Apple Watch

转载 作者:可可西里 更新时间:2023-11-01 00:52:54 27 4
gpt4 key购买 nike

好吧,我的情况有点复杂,但基本上我有一个 Apple Watch 扩展与我的应用连接,它使用 Firebase 接收和发送数据。我想在我的 watch 中使用与应用程序相同的功能,唯一的问题是我需要使用相同的 Firebase 引用,因为我使用 Google 身份验证并且我需要保持授权数据相同(除非有另一种方式)。所以我让 watch 做的是最初请求一些数据:所选计时器的索引(它是一个计时器应用程序)和 Firebase 引用变量。但是当 iPhone 应用程序使用 reply() 函数并像这样发回字典时:

reply(["replyInfoType": "watchInfo", "selectedTimerKey": keySelected, "refFirebase": ref])

ref 变量定义为 var ref = Firebase(url:"https://my-app-url.firebaseio.com/")。编译没有错误,但是当我运行 watch 扩展并附加到应用程序进程时,我的应用程序在这里抛出一个很好的 SIGABRT: enter image description here日志中根本没有打印任何内容。在我取消暂停进程后,应用程序崩溃了。我不知道这是从哪里来的。如果我不在字典中包含 ref 变量,它运行良好,除了我的 watch 应用程序没有读取 Firebase 数据库的权限这一事实。

最佳答案

official documentation for Firebase and the Apple Watch on user authentication .

为主机应用和扩展启用应用组。然后使用 NSUserDefaults 在用户登录时将用户的身份验证 token 保存在主机应用程序中。

let defaults = NSUserDefaults(suiteName: "group.username.SuiteName")!
ref.observeAuthEventWithBlock { [unowned self] (authData: FAuthData!) in
if authData != nil {
defaults.setObject(authData.token, forKey: "FAuthDataToken")
defaults.synchronize()
}
}

在 Watch App Extension 中,从 NSUserDefaults 检索身份验证 token ,并在 awakeWithContext 函数中调用 authWithCustomToken

override func awakeWithContext(context: AnyObject?) {
super.awakeWithContext(context)
ref = Firebase(url: "https://<your-firebase-app>.firebaseio.com/updates")
updates = [FDataSnapshot]()
// Use the same suiteName as used in the host app
let defaults = NSUserDefaults(suiteName: "group.username.SuiteName")!
// Grab the auth token
let authToken = defaults.objectForKey("FAuthDataToken") as? String
// Authenticate with the token from the NSUserDefaults object
ref.authWithCustomToken(authToken, withCompletionBlock: { [unowned self] (error: NSError!, authData: FAuthData!) in
if authData != nil {
println("Authenticated inside of the Watch App!")
} else {
println("Not authenticated")
}
})
}

关于objective-c - 将 Firebase 引用发送到 Apple Watch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31081068/

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