使用来自firebaseDB的数据和云功能

时间:2017-06-13 16:43:43

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

我正在尝试使用谷歌云功能预渲染元数据,但我无法弄清楚如何访问这些值,数据日志会在函数控制台上返回(参见链接)

console.log(data) returns this

    exports.preLoadMeta = functions.https.onRequest((request, response) => {
    let id = request.url.split("/");
    let data;

    admin.database().ref('proyectos').orderByChild("urlAmigable").equalTo(id[2]).once("value")
        .then(proyectos =>{
            data = proyectos.val();
            console.log(data)
        }).then( () => {
            response.status(200).send(`
<!doctype html>
<html class="no-js" lang="es" dir="ltr">
  <head>
    <title>${data.titulo}</title>
    <meta name="description" content="bla bla - ${data.titulo}" />
    <meta property="og:title" content="${data.titulo}" />
    <meta property="og:description" content="${data.meta}" />
    <meta property="og:image" content="${data.imgUrl}" />
    <meta property="og:type" content="article" />
            `);
        })
})

(这不起作用)

1 个答案:

答案 0 :(得分:2)

我认为你期望你的查询返回孩子而不是集合。你需要得到孩子(即使在这种情况下只有一个孩子)。请尝试将此代码用于快照:

proyectos.forEach(child => {
  data = child.val()
});