firebase / firebase/firebase-cpp-sdk
[FR]: Reuse GameCenterAuthProvider implementation on macOS
- Langage dominant
- C++
- Étoiles
- 326
- Forks
- 137
- Merge moyen
- 3 j 9 h
- PR mergées (30 j)
- 5
Description
### Feature proposal
* Firebase Component: Auth
[GameKit](https://developer.apple.com/documentation/gamekit?language=objc) is supported by Apple on both iOS and macOS and its [Game Center authentication API](https://developer.apple.com/documentation/gamekit/authenticating_a_player?language=objc) is 99% reusable between OSes, with the only exception being `UIViewController` vs `NSViewController` parameter in [`GKLocalPlayer:setAuthenticateHandler`](https://developer.apple.com/documentation/gamekit/gklocalplayer/1515399-authenticatehandler?language=objc). If you guys massage your iOS implementation of `GameCenterAuthProvider` to also work on macOS, which from my experience should be pretty straightforward, then we will be able to use `GameCenterAuthProvider::GetCredential` to exchange it for a Firebase credential and thus have a unified user support across entire apple eco-system. This is particularly interesting to developers offering [universal purchase](https://developer.apple.com/support/universal-purchase/) because Game Center user IDs are shared between iOS and macOS thus enabling us to recognize the same user in Firebase across those operating systems.
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par localiser l’implémentation iOS de GameCenterAuthProvider et son point d’entrée GetCredential ; comparez le callback UIViewController de setAuthenticateHandler avec la forme NSViewController de macOS. C’est terminé lorsque le provider peut échanger l’authentification macOS Game Center contre un credential Firebase et prendre en charge le flux utilisateur partagé.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- cpp, objective-c
- Domaine
- authentication, desktop-dev, mobile-dev
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 25/100