Вход для Apple с помощью Firebase в Unity на Android выдает исключение «клиент не соответствует ключу API»

Я пытаюсь получить доступ к Apple с помощью Firebase для Unity, работающего на Android.

Я выполнил их инструкции по настройке, но моя ситуация немного сложнее стандартной, я не хочу вдаваться в подробности настройки, но использую приведенный ниже код:

FederatedOAuthProviderData providerData = new FederatedOAuthProviderData();
providerData.ProviderId = "apple.com";
var scopes = new List<string>();
scopes.Add("email");
scopes.Add("name");
providerData.Scopes = scopes;

всякий раз, когда я бегу

 Auth.SignInWithProviderAsync(oAuthProvider)

or

User.LinkWithProviderAsync(provider)

Я получаю следующую ошибку:

there was an error while trying to get your package certificate hash. [client does not match api key]

Может ли кто-нибудь сказать мне, что именно эта ошибка пытается сказать мне. У меня есть учетные записи, работающие в GameCenter, GooglePlay, Google и Facebook, но все они используют поток учетных данных, а не поток нового провайдера.

Ваше здоровье.

Добавление дополнительной информации для пояснения настройки:

Есть приложение по умолчанию, у которого есть собственный проект firebase, это приложение со связанными приложениями, sha-1 и т. Д. Этот проект предоставляет google-services.json.

Есть проект firebase учетных записей без связанных приложений - этот проект firebase был настроен для поддержки входа в систему с помощью Apple, а также всех других поддерживаемых нами поставщиков и имеет ссылку на идентификатор службы в соответствии с инструкциями.

Я использую функцию нескольких проектов в наших приложениях, создавая приложение для учетных записей с

FirebaseApp.Create (accountsAppOptions, «Учетные записи»);

Аутентификация выполняется через Auth этого приложения.

После того, как пользователь успешно аутентифицируется с помощью аутентификации учетных записей, я создаю собственный токен, используя облачную функцию, и аутентифицируюсь в приложении по умолчанию, используя его.

Это хорошо работает для GooglePlay, GameCenter, Google, Firebase. Но мне интересно, поддерживается ли этот поток при входе в систему с помощью Apple в его нынешнем виде?


person Mike    schedule 02.05.2020    source источник


Ответы (1)


Обязательно убедитесь, что вы как можно более актуальны с Firebase Unity. SDK. Поддержка входа в Apple является новой, поэтому вы не хотите пропустить какие-либо возможные исправления.

Затем убедитесь, что ваш SHA-1 находится в стадии разработки. Если вы подписываете с помощью своего хранилища ключей отладки, это относится к каждой машине разработчика и может быть загружено в дополнение к хранилищу ключей выпуска. Кроме того, не все требует SHA-1, но Auth является рассадником закрытых функций SHA-1, поэтому неудивительно, если бы это была недостающая часть конфигурации.

Наконец, убедитесь, что вы выполнили все шаги настройки. В частности, если вы посмотрите Настроить вход в Apple вы увидите ссылку на Android Настроить вход с помощью Apple, которая включает в себя неплохую настройку, которую вам нужно сделать, чтобы все работало. Также убедитесь, что вы выполнили все шаги, чтобы включить Apple как поставщик услуг входа. Возможно, этот ключ настроен не полностью.

Я надеюсь, что все это поможет, и я хотел бы услышать, какая часть этого (если таковая имеется) решает проблему, чтобы увидеть, можно ли немного подкрепить документы!

--Патрик

person Patrick Martin    schedule 04.05.2020
comment
Привет, Патрик, спасибо за всю информацию. Я прошел через все и считаю, что все настроил правильно. Но вся настройка наших учетных записей нестандартна. Я добавил дополнительную информацию к вопросу выше, если вы достаточно хороши, чтобы взглянуть. - person Mike; 05.05.2020
comment
Было бы интересно узнать, если он работает в вашем основном приложении (DefaultInstance), но не в вашем дополнительном приложении. Apple Sign-In является очень новым, и иногда предположения о синглтоне Firebase делаются глубже в SDK. Если вы можете сузить его до вторичного экземпляра Firebase, вам нужно будет отправить отчет об ошибке: github.com/firebase/quickstart-unity/issues - person Patrick Martin; 05.05.2020
comment
Я также не знаю точных деталей того, как работает sha-1, но вам, возможно, придется поместить приложение во вторичную учетную запись firebase с sha-1 для работы авторизации Apple. Это создало бы повторяющееся исключение sha-1 (вы не можете иметь одинаковые sha-1 и идентификатор пакета в двух разных проектах Firebase). - person Patrick Martin; 05.05.2020
comment
да, я действительно пробовал это и получил именно то исключение. Я собираюсь попробовать заставить его работать в приложении по умолчанию в качестве теста. - person Mike; 05.05.2020
comment
Итак, я расспрашивал, и похоже, что токены аутентификации намеренно привязаны к проекту. Судя по тому, как вы описали свою настройку, это может быть сделано в целях безопасности. - person Patrick Martin; 06.05.2020