#ios #swift #firebase #firebase-authentication
#iOS #swift #firebase #firebase-аутентификация
Вопрос:
Внутри моего приложения я хотел бы войти в систему пользователя с помощью Auth.auth().useUserAccessGroup
.
Это мой код для входа в систему с помощью электронной почты (пользователь также может войти в систему с помощью Facebook, Google и Apple):
Функция регистрации:
static func signUpWithEmail(email: String, password: String, username: String, finished: @escaping (_ done: Bool) -> Void){
do {
try Auth.auth().useUserAccessGroup("SN26HDFT24.com.wishlists-app.group")
} catch let error as NSError {
print("Error changing user access group: %@", error)
}
Auth.auth().createUser(withEmail: email, password: password) { (result, error) in
if let error = error {
Utilities.showErrorPopUp(labelContent: "Fehler", description: error.localizedDescription)
finished(false)
}
if let userId = result?.user.uid {
// successfully signed in
} else {
print("user couldn't sign in")
finished(false)
}
}
}
Совместное использование связки ключей:
Проблема:
При вызове этой функции if let error = error
происходит сбой:
Поле @c NSLocalizedFailureReasonErrorKey в словаре @c NSError.userInfo будет содержать дополнительную информацию о возникшей ошибке» userInfo={FIRAuthErrorUserInfoNameKey=ERROR_KEYCHAIN_ERROR, NSLocalizedFailureReason=SecItemCopyMatching (-34018), NSLocalizedDescription=Произошла ошибка при доступе к связке ключей. Поле @c NSLocalizedFailureReasonErrorKey в словаре @c NSError.userInfo будет содержать дополнительную информацию о возникшей ошибке}
итак, в первый раз, когда я это вызываю, try Auth.auth().useUserAccessGroup("SN26HDFT24.com.wishlists-app.group")
на самом деле успешно, по крайней мере, он ничего не выбрасывает.
Но при повторном вызове do try block
происходит сбой. С тем же сообщением об ошибке, что и выше.
Права доступа:
Возможности:
Я застрял. Нигде не удалось найти ничего по этому поводу…
Это для моего расширения общего доступа:
Комментарии:
1. Должно быть достаточно вызвать это только один раз после инициализации приложения firebase (
FirebaseApp.configure()
).2. @cybergen тоже пробовал это
Ответ №1:
Я не знаю, как это могло произойти, но строка для группы доступа неверна в ваших правах.
Это должно быть $(AppIdentifierPrefix)com.wishlists-app.group
вместо $(AppIdentifierPrefix)SN26HDFT24.com.wishlists-app.group
.
У вашего расширения должна быть активирована та же группа приложений и группа связок ключей. Я ничего не вижу из вашего расширения приложения. Затем вы также должны вызвать useUserAccessGroup("SN26HDFT24.com.wishlists-app.group")
свой добавочный номер.
Комментарии:
1. вы уверены? Я думал, что мне нужно использовать идентификатор команды спереди для доступа к цепочке ключей
2. Уверен. Я заглянул в наш (список пожеланий ;-)) проект, где он работает. Тем не менее, у нас есть проблемы с нашим расширением общего доступа. При выходе из системы и повторном входе в наше основное приложение расширение остается вне системы до тех пор, пока приложение, вызывающее расширение общего доступа (например, Amazon или Safari), не будет отключено и перезапущено.
3. $ (AppIdentifierPrefix) должен быть вашим идентификатором команды.
4. о, это ты, ха-ха: D хорошо, я попробую! почему я не вижу никаких входов в свою базу данных с вашей стороны?
5. Это я, кто? Вероятно, я не являюсь пользователем вашего конкретного приложения.