在我的应用程序内部,用户可以使用Firebase
用Apple,Google,Facebook和电子邮件登录。我也有一个Share Extension
,我想从主应用程序中共享auth-state
,所以我也可以在我的Auth.auth.currentUser
中调用ShareExtension
,以便用户可以访问{{ 1}}。
现在我知道 Firebase 提供了此documentation。但是我不确定第2步:
Cloud-Firestore
我到底该在哪里打电话?
编辑:
主应用程序:
更新:
在do {
try Auth.auth().useUserAccessGroup("TEAMID.com.example.group1")
} catch let error as NSError {
print("Error changing user access group: %@", error)
}
之前调用上面的代码时,它抛出了error
:
更改用户访问组时出错:%@ Error Domain = FIRAuthErrorDomain代码= 17995“访问钥匙串时发生错误。@c NSError.userInfo词典中的@c NSLocalizedFailureReasonErrorKey字段将包含有关遇到的错误的更多信息” UserInfo = {FIRAuthErrorUserInfoNameKey = ERROR_KEYCHAIN_ERROR,NSLocalizedFailureReason = SecItemCopyMatching(-34018),NSLocalizedDescription =访问钥匙串时发生错误。 @c NSError.userInfo字典中的@c NSLocalizedFailureReasonErrorKey字段将包含有关遇到的错误的更多信息}
答案 0 :(得分:0)
在文档中,您可以看到必须遵循的流程。首先,在应用程序中的任何地方,只要您具有登录过程,就必须添加以下代码行:
do {
try Auth.auth().useUserAccessGroup("TEAMID.com.example.group1")
} catch let error as NSError {
print("Error changing user access group: %@", error)
}
您可以将它们添加到委托的didFinishLaunchingWithOptions函数中,但可以在任何需要的地方使用它。
在另一个应用程序中,您必须添加相同的代码。这两个应用必须具有相同的访问组,对吗?
然后在一个应用程序中,您必须执行以下语句:
Auth.auth().signInAnonymously { result, error in
// User signed in
}
您可以将其放在上面的第一个代码之后。然后,您将可以在两个应用程序中访问用户,如下所示:
var user = Auth.auth().currentUser