我们的主应用与 Firebase SDK 集成。用户使用电子邮件、谷歌或 Facebook 通过主应用程序登录。
现在,我们实现了共享扩展,理想情况下应该在内部共享相同的身份验证 session ,以便可以在 Firebase 上与同一用户发送数据,而无需要求他通过扩展再次登录。
那么,有人知道在主应用和共享扩展之间共享 Firebase 身份验证 session 的方法吗?
我们向主应用发送了一些内部调用以执行 Firebase 内容,因为其中包含身份验证详细信息。
主应用通过应用组将一些 token 设置为普通用户默认值,然后共享扩展程序将使用这些 token 自动重新进行身份验证。
或者 Firebase 提供了一些方法来做到这一点,
我不知道从上面什么是可行的。
我找到了一个方法 signInWithCustomToken:completion: 但是,它与我实际查找的内容无关。
Best Answer-推荐答案 strong>
要从同一组 NSUserDefaults 中读取和保存,您需要执行以下操作:
- 在您的主应用中,在项目导航器中选择您的项目。
- 选择您的主要应用目标并选择功能选项卡。
- 打开应用组(这将与开发者门户进行通信,因为它正在生成一组权利和相关的应用 ID 等
第四次)。
- 创建一个新容器。根据帮助,它必须启动
加上“group.”,所以给它起一个名字,比如“group.myapp.test”。
- 选择
您的 Today Extension 目标并重复此开启过程
应用程序组。不要创建一个新的,而是选择这个新创建的
group 表示 Today Extension 是该组的成员。
写入您的 NSUserDefaults:
// In this example I´m setting FirstLaunch value to true
NSUserDefaults(suiteName: "group.myapp.test")!.setBool(true, forKey: "FirstLaunch")
从 NSUserDefaults 读取:
// Getting the value from FirstLaunch
let firstLaunch = NSUserDefaults(suiteName: "group.myapp.test")!.boolForKey("FirstLaunch")
if !firstLaunch {
...
}
关于ios - 如何在主 iOS 应用程序与其共享扩展之间使用相同的经过身份验证的用户 token ,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/44455433/
|