我对google firebase和云功能非常陌生。 我只是做了一些helloworld:
代码如下:
'use strict';
const functions = require('firebase-functions');
const admin = require('firebase-admin');
console.log(mydump(functions.config().firebase));
admin.initializeApp(functions.config().firebase);
exports.helloWorld = functions.https.onRequest((request, response) => {
const tokens = [];
const html = [];
var oldItemsQuery = admin.database().ref();
html.push("==============begin========================");
return oldItemsQuery.once('value').then(snapshot => {
console.log("once value, snapshot key:" + snapshot.key
+",val:" +snapshot.val()
+",hasChild/profile:" +snapshot.hasChild("profile")
+",hasChild/everyday:" +snapshot.hasChild("everyday")
+",numChildren:" +snapshot.numChildren()
+",toJSON:" +snapshot.toJSON()
);
html.push("============end===================");
response.send(html.join("<br>\n"));
});
});
我相信这段代码非常简单。但是当我在浏览器中访问url时,结果并不像预期的那样。 https://us-central1-xxxxxxxxx.cloudfunctions.net/helloWorld?r=125
我在控制台收到了消息
once value, snapshot key:null,val:null,hasChild/profile:false,hasChild/everyday:false,numChildren:0,toJSON:null
这意味着我的数据库中没有记录。我尝试了以下代码,但结果是一样的。
var oldItemsQuery = admin.database().ref("");
var oldItemsQuery = functions.database.ref('/{playerId}/profile').orderByChild('timezone').limitToFirst(1);
//var oldItemsQuery = admin.database().ref('/{playerId}/profile').orderByChild('timezone').limitToFirst(1);
谢谢。我花了3天时间才能解决这个问题。
答案 0 :(得分:0)
我试过这个,它有效:
const admin = require('firebase-admin');
const functions = require('firebase-functions');
admin.initializeApp(functions.config().firebase);
var db = admin.firestore();
我不得不说这是一个愚蠢的问题。但请保留它。我相信我不是唯一遇到问题的人。谢谢弗兰克给我的线索