J'essaie de récupérer une valeur de ma base de données Firebase et j'utilise le code suivant:

export const getCode = async key => {
  let ref = await database.ref ('games/' + key).once('value');
  console.log(ref);
  console.log(ref.code);
  return ref;
};

Les résultats que j'obtiens de chaque console.log sont les suivants:

Le ref renvoie

Object {
  "code": 665195,
  "users": Object {
    "-MA5m0PrOWUuz-KdcmRx": Object {
      "username": "לעג",
    },
  },
}

Mais ref.code renvoie undefined

capture d'écran

J'ai passé des heures sur mon code et mon stackoverflow et je n'ai pas trouvé de réponse. J'espère que vous pourriez.

0
Kprmn5555 18 juin 2020 à 12:39

3 réponses

Meilleure réponse

Vous n'avez pas utilisé ref.val () pour obtenir des valeurs.

Essayer

export const getCode = async key => {
      let ref = await database.ref('games/' + key).once('value');
      const data = ref.val();
      console.log(data);
      console.log(data.code);
      return data.code;
    };
2
maulikdhameliya 18 juin 2020 à 09:50

La variable ref ne devrait-elle pas être renvoyée? Vous n'avez rien déclaré nommé code d'où la raison pour laquelle il n'est pas défini.

export const getCode = async key => {
  let ref = await database.ref ('games/' + key).once('value');
  return ref.code;
};

Vous pouvez également faire comme les enfants cool et créer cette ligne unique si vous voulez l'utiliser telle quelle.

export const getCode = async key => await database.ref ('games/' + key).once('value').code
0
jakob_a 18 juin 2020 à 09:50

Si ref est enregistré comme suit:

Object {
  "code": 665195,
  "users": Object {
    "-MA5m0PrOWUuz-KdcmRx": Object {
      "username": "לעג",
    },
  },
}

Je soupçonne qu'il se peut que vous obteniez une chaîne json en réponse, à moins que votre environnement de développement ne cite les clés par défaut.

Essayez peut-être let ref = JSON.parse(await database.ref ('games/' + key).once('value'));

0
FrostyZombi3 18 juin 2020 à 09:50