通过云功能从Firebase中获取任何内容

时间:2018-01-13 07:13:19

标签: javascript firebase firebase-realtime-database google-cloud-functions

我对google firebase和云功能非常陌生。 我只是做了一些helloworld:

  1. 连接到Cloud firestore [beta],其中包含超过100,000条记录
  2. 检索前1条记录。
  3. 代码如下:

        '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天时间才能解决这个问题。

1 个答案:

答案 0 :(得分:0)

我试过这个,它有效:

const admin = require('firebase-admin'); 
const functions = require('firebase-functions'); 
admin.initializeApp(functions.config().firebase); 
var db = admin.firestore();

我不得不说这是一个愚蠢的问题。但请保留它。我相信我不是唯一遇到问题的人。谢谢弗兰克给我的线索