我们将主应用与Firebase SDK集成在一起。用户通过电子邮件,谷歌或Facebook通过主应用程序登录。
现在,我们已经实现了共享扩展,理想情况下应该在内部共享相同的身份验证会话,以便可以在Firebase上与同一用户发送数据,而无需要求他通过扩展程序再次登录。
那么,有谁知道在主应用程序和共享扩展之间共享Firebase身份验证会话的方法?
我们要么向主应用发送一些内部调用来执行 Firebase 操作,因为它包含身份验证详细信息。
主应用通过应用组将一些令牌设置为普通用户默认值,然后共享扩展将使用这些令牌自动重新进行身份验证。
或者Firebase提供了一些方法来做到这一点,
我不知道从上面看什么是可行的。我找到了一种方法signInWithCustomToken:completion:
但是,它与我实际寻找的内容无关。
要从同一组 NSUserDefaults 读取和保存,您需要执行以下操作:
- 在主应用程序中,在项目导航器中选择您的项目。
- 选择主应用目标,然后选择功能选项卡。
- 打开应用组(这将与开发人员门户通信,因为它正在生成一组权利以及相关的应用 ID 等四(。
- 创建新容器。根据帮助,它必须启动使用"group.",因此请给它起一个类似"group.myapp.test"的名称。
- 选择您的今日扩展目标并重复此打开过程应用组。不要创建一个新的,而是选择这个新创建的组,以表示今日扩展是该组的成员。
写入 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 {
...
}