快速提问。长话短说,我在谷歌云功能日志中收到此错误:
Firestore(4.10.1):无法访问Firestore后端。
这是我的函数文件中的代码:
// pull in firebase
const firebase = require('firebase');
// required
require("firebase/firestore");
// initialize firebase
const firebaseApp = firebase.initializeApp({
// Firebase configuration.
apiKey: "<Key Here>",
authDomain: "<Auth Domain>",
databaseURL: "<database url>",
projectId: "<project id>",
storageBucket: "<storage bucket>",
messagingSenderId: "<messaging sender id>"
});
// setup the firestore
var fs = firebaseApp.firestore();
exports.search = functions.https.onRequest((request, response) => {
cors(request, response, () => {
// set a reference to the foo table in firestore
var docRef = fs.collection("foo");
// check for the foo in the firestore
docRef.where('bar', '==', <something>).get().then(function(doc) {
if (!doc.docs) {
return db.collection("foo").add({
bar: <something>
})
.then(function(docRef) {
console.log("Document written with ID: ", docRef.id);
})
.catch(function(error) {
console.error("Error adding document: ", error);
});
}
});
});
});
此时我被困住了。据我所知,我有事情,但也许没有?我搜索了文档并搜索了这个问题,没有取得多大成功。你看错了吗?
答案 0 :(得分:2)
好的。所以我的问题的答案是我不是很聪明。非常感谢Taha Azzabi指出我正确的方向。事实证明我的问题在这里:
docRef.where('bar', '==', <something>).get().then(function(doc) {
if (!doc.docs) {
return db.collection("foo").add({
bar: <something>
})
这永远不会奏效。我的查询是正确的,但对doc.docs的检查不正确。我的代码现在是:
// setup the firestore
const fs = firebase.firestore();
// set a reference to the document for the searched summoner
var docRef = fs.collection("bars").doc("snickers");
// check for the bar in the firestore
return docRef.get()
.then(function(doc) {
if (!doc.docs) {
return fs.collection("bars").doc("snickers").set({
name: "snickers"
})
.then(function(reference) {
console.log("Document written");
return response.status(200).send('');
})
这就是我所寻找的,所以我很高兴。长话短说,我抓住了一系列结果然后试图查看是否存在单个结果。我需要做的是从firestore中获取一个doc,然后检查是否存在单个doc。但是,错误:
Firestore(4.10.1):无法访问Firestore后端。
我没有把我指向那个方向。
答案 1 :(得分:0)
您安装了Firebase CLI吗?
npm install -g firebase-tools
您是否通过CLI登录Firebase控制台?
firebase login
您是否初始化了Firebase云功能?
firebase init functions
您不需要重新初始化应用,初始化管理应用实例,思考。 这是一个希望有帮助的例子
const functions = require('firebase-functions')
const admin = require('firebase-admin')
admin.initializeApp(functions.config().firebase)
//trigger a function to fire when new user document created
exports.createUser = functions.firestore
.document('users/{userId}')
.onCreate(event => {
// perform desired operations ...
});
部署你的职能
firebase deploy --only functions
在此处阅读更多内容https://firebase.google.com/docs/functions/get-started