Быстрый вход пользователя в систему с помощью группы доступа не работает

#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)
        }
    }
}
  

Совместное использование связки ключей:

asdf

Проблема:

При вызове этой функции 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. Это я, кто? Вероятно, я не являюсь пользователем вашего конкретного приложения.