2

功能/ index.js:如何使功能与Firestore一起使用?

const functions = require('firebase-functions') 
const admin = require('firebase-admin') 
admin.initializeApp(functions.config().firebase) 
const db = admin.database().ref() 
exports.app = functions.https.onRequest((req, res) => { 
    // do whatever here... 
    db.child('something').once('value').then(snap => console.log(snap.key)) 
}) 

上述工作的火力地堡。

我对制作this示例功能感兴趣。事情是这样的,但工作:

const functions = require('firebase-functions') 
const admin = require('firebase-admin') 
admin.initializeApp(functions.config().firebase) 
const db = admin.database().ref() 

exports.request = functions.https.onRequest((req, res) => { 

    let docRef = db.collection("cities").doc("SF")  
    docRef.get().then(doc => { 
     if (doc.exists) console.log("Document data:", doc.data()) 
     else console.log("No such document!") 
    }).catch(error => { 
     console.log("Error getting document:", error) 
    }) 

}) 

回答

8

使用admin.firestore()而不是admin.database()。确保你的firebase-admin模块是5.4.1或更好的。

exports.fun = functions.https.onRequest((req, res) => { 
    const store = admin.firestore() 
    store.collection('users').doc('foo').get().then(doc => { 
     if (doc.exists) { 
      console.log(doc.data()) 
      res.send(doc.data()) 
     } 
     else { 
      res.send("Nothing") 
     } 
    }).catch(reason => { 
     console.log(reason) 
     res.send(reason) 
    }) 
}) 
+0

'firebase-admin模块是5.4.1或更好'是失踪的关键。我不得不手动更新package.json然后运行'npm i'。现在就工作,谢谢。 –

+0

如果问题不多,您是否可以提供重现更新/修复的步骤? –

+0

进入函数目录并更新'package.json'文件。在'dependencies'下面我有这个:'“firebase-admin”:“〜5.4.1”,“firebase-functions”:“^ 0.7.0”'。然后在Windows上打开命令提示符,导航到你的函数目录并运行'npm install'。 –

相关问题