Я пытаюсь запустить команды функций Firebase (в соответствии с примером здесь ) в игровых площадках Xcode для упрощения тестирования, которое требует от меня аутентификации в Firebase Auth для генерации токена для запуска функций. Я добавил пользовательскую среду под названием PlaygroundFramework и игровую площадку в своем рабочем пространстве, чтобы мой файл Playground мог использовать мои модули, как показано в моем предыдущем выпуске здесь .
Вызов функции для генерации токена, как указано в приведенном здесь примере, прошел успешно. Однако при попытке входа с использованием кода произошла ошибка: Auth.auth().signIn(withCustomToken: token)
. Полное сообщение об ошибке таково:
Error Domain=FIRAuthErrorDomain Code=17995 "An error occurred when accessing the keychain. The
@c NSLocalizedFailureReasonErrorKey field in the @c NSError.userInfo dictionary will contain
more information about the error encountered" UserInfo= . {FIRAuthErrorUserInfoNameKey=ERROR_KEYCHAIN_ERROR, NSLocalizedFailureReason=SecItemCopyMatching . (-34018), NSLocalizedDescription=An error occurred when accessing the keychain. The @c
NSLocalizedFailureReasonErrorKey field in the @c NSError.userInfo dictionary will contain more
information about the error encountered}
Как таковое, поскольку ошибка была связана с доступом к цепочке для ключей , я нашел инструкции от Google здесь , и поэтому я создал группу цепочки для ключей в своем основном проекте (названную Foo ), и обратите внимание, что имя группы цепочки для ключей было com.example.Foo , которое было предварительно установлено Xcode и мне не удалось отредактировать его. Мне не удалось добавить группу цепочки для ключей для PlaygroundFramework. Поэтому я использовал следующий код:
do {
try Auth.auth().useUserAccessGroup("<team_id>.com.example.Foo")
} catch let error as NSError {
print("Error changing user access group: %@", error.userInfo)
}
Вышеприведенное далее дало мне немного другую ошибку:
Error changing user access group: %@ ["NSLocalizedFailureReason": SecItemCopyMatching (-34018),
"NSLocalizedDescription": An error occurred when accessing the keychain. The @c
NSLocalizedFailureReasonErrorKey field in the @c NSError.userInfo dictionary will contain more
. information about the error encountered, "FIRAuthErrorUserInfoNameKey":
ERROR_KEYCHAIN_ERROR]
Я довольно смущен терминологией в XCode, и я думаю, что я поставил неправильное значение для функции userAccessGroup
.