J'utilise ce SDK et je le suis documentation. Maintenant, j'essaye de créer et d'authentifier l'utilisateur dans firebase db. Comment puis-je faire cela.Je fais le projet dans Codeigniter et dans mon contrôleur, j'ai fait ceci:

    public function register()
    {
    $firebase = (new Firebase\Factory())->create();

    $tokenHandler = $firebase->getTokenHandler();

    $uid = 'a-uid';
    $claims = ['foo' => 'bar']; // optional

    // Returns a Lcobucci\JWT\Token instance
    $customToken = $tokenHandler->createCustomToken($uid, $claims);
    echo $customToken; // "eyJ0eXAiOiJKV1..."

    $idTokenString = 'eyJhbGciOiJSUzI1...';
    // Returns a Lcobucci\JWT\Token instance
    $idToken = $tokenHandler->verifyIdToken($idTokenString);

    $uid = $idToken->getClaim('sub');

    echo $uid; // 'a-uid'
    } 

Et j'appelle la fonction Cela m'a donné cette erreur:

    Type: Kreait\Firebase\Exception\ServiceAccountDiscoveryFailed
    Message: Kreait\Firebase\ServiceAccount\Discovery\FromEnvironmentVariable: The environment variable "FIREBASE_CREDENTIALS" is not set. Kreait\Firebase\ServiceAccount\Discovery\FromEnvironmentVariable: The environment variable "GOOGLE_APPLICATION_CREDENTIALS" is not set. Kreait\Firebase\ServiceAccount\Discovery\FromGoogleWellKnownFile: The well known file is not readable or invalid

  Filename: E:\xampp\htdocs\firebasedb\vendor\kreait\firebase-
  php\src\Firebase\ServiceAccount\Discoverer.php

  Line Number: 48

Quelqu'un peut-il m'aider avec ce problème? Tout type d'aide est apprécié. Merci.

MODIFIER D'accord, je résous ce problème avec le chemin du fichier .json par défaut comme ceci:

  $serviceAccount = ServiceAccount::fromJsonFile(JSON_FILE_PATH.'google-service-account.json');
  $firebase = (new Factory)
  ->withServiceAccount($serviceAccount)
  ->create();

Puis-je enregistrer un nouvel utilisateur depuis l'application Web? Quelqu'un peut-il aider s'il vous plaît. Je suis arrêté dans ce problème depuis longtemps. Les aides sont très appréciées.

1
Suz Aann shrestha 17 août 2017 à 14:51

2 réponses

Meilleure réponse

Vous définissez les variables d'environnement de la clé JSON FIREBASE_CREDENTIALS GOOGLE_APPLICATION_CREDENTIALS ?

essayez de lire ce Firebase Admin SDK for PHP Setup

1
aofdev 17 août 2017 à 12:26

J'ai eu le même problème avec Laravel dans mon cas, voici la solution:

Enregistrez d'abord le fichier d'identifiants .json que vous avez obtenu du projet Firebase dans la racine de votre application Laravel au même niveau que le fichier .env.

Le fichier json ressemble à you-file-firebase-adminsdk-0000-9845985498a.json

Ensuite, ouvrez le fichier .env, créez une nouvelle variable d'environnement et collez le nom du fichier d'informations d'identification json.

FIREBASE_CREDENTIALS=../you-file-firebase-adminsdk-0000-9845985498a.json
0
Anil Singh 19 juin 2019 à 13:08