2017-10-04 4 views
1

Le Firestore docs montre seulement comment configurer Firestore en utilisant firebase-admin, ce qui me semble essentiellement une solution côté serveur. Même si nous parlons d'utiliser Cloud Functions, c'est toujours un mini-serveur avec une couche d'abstraction supplémentaire entre le navigateur et la base de données. J'essaie de comprendre comment faire une configuration similaire à celle utilisée pour accéder à la base de données en temps réel directement à partir du code du navigateur.Comment configurer Cloud Firestore pour site Web hébergé statique

A 5 minutes YouTube: Getting Started With Cloud Firestore on the Web | Complete Tutorial fournies par Google, je vois exactement ce type de configuration utilisé, sauf, maintenant, après l'initialisation de l'application, nous appelons firestore() méthode au lieu de la méthode database() pour obtenir la référence racine.

J'ai réinitialisé le projet avec le magasin activé et les règles du projet sont actuellement définies pour permettre à quiconque d'y accéder. Mais pour moi, la méthode firebase() n'est pas incluse dans mon instance Firebase.

const firebase = require('firebase') 

const config = { 
    apiKey: 'long_ugly_string', 
    authDomain: 'my_app_id.firebaseapp.com', 
    databaseURL: 'https://my_app_id.firebaseio.com', 
    projectId: 'my_app_id', 
} 

firebase.initializeApp(config) 

console.log(firebase.firebase) // undefined 
const firestore = firebase.firestore() // TypeError: firebase.firestore is not a function 

J'ai aussi essayé de créer 100% tout nouveau projet pour assurer que la question n'a pas été causé par les anciens paramètres persistants de l'installation de base de données en temps réel. Mais j'ai le même problème avec le nouveau projet. Mon instance Firebase se termine par une méthode database(), mais pas de méthode firestore().

+0

Quelle version de Firebase utilisez-vous? –

+1

Les documents Firebase montrent comment utiliser plusieurs langues différentes. Le javascript côté serveur est affiché sous l'onglet "Node.js". Vous devriez regarder l'onglet "Web" pour le javascript côté client. Assurez-vous de [utiliser la bonne version de la bibliothèque] (https://firebase.google.com/docs/firestore/quickstart#set_up_your_development_environment) – Sidney

Répondre

2

Grâce au commentaire de @Sidney, j'ai pu résoudre le problème. En fait, je regardais l'onglet node.js et non l'onglet Web dans les documents. L'élément manquant était un appel à require('firebase/firestore') pour le rendre disponible au module firebase. Voici le code d'installation corrigé:

const firebase = require('firebase') 
require('firebase/firestore') // *** this line was missing *** 

const config = { 
    apiKey: 'long_ugly_string', 
    authDomain: 'my_app_id.firebaseapp.com', 
    databaseURL: 'https://my_app_id.firebaseio.com', 
    projectId: 'my_app_id', 
} 

firebase.initializeApp(config) 

const firestore = firebase.firestore() 

// rest of code ...