【问题标题】:how to store firebase snap.val() in a varible to use else where?如何将 firebase snap.val() 存储在变量中以在其他地方使用?
【发布时间】:2017-11-10 17:46:54
【问题描述】:

如何使用 javascript 从 firebase 数据库存储数据。我想使用 once 方法,这样它就不会不断地寻找任何变化。 比如这样:

database.child('readOnly/something').once('value').then((snap) => {
        const groupObj = [
            snap.val()
        ]
    });
    app.get('/something',(req,res)=>{
            res.render('something',{
                "groupList": groupObj
            });
        });
            // Individual Life Groups
            app.get('/something/:name',(req,res)=>{
                const group = req.path.split("/").pop();
                console.log(groupObj.length)
                for (i = 0; i < groupObj.length; i+=1) { 
                    if(groupObj[i].url   == group){
                        var desiredGroup = groupObj[i];
                        console.log(desiredGroup);
                        break;
                    }
                }
                res.render('group', desiredGroup);
                // To-Do: Add Data and Bindings
            });

我正在使用最新版本的 expressjs、firebase、nodejs 和 npm。

【问题讨论】:

  • 应用程序生命周期的值是否相同?还是您希望它改变。在所有请求/用户之间共享?
  • 在再次调用 '/something' 之前,该值是相同的
  • 那么是的,您基本上可以将该值存储在一个位置,该位置可供所有需要它的路由调用使用,然后重复使用它。
  • 谢谢你最终为我工作

标签: javascript node.js express firebase


【解决方案1】:

您可以将groupObj 变量放在“全局”区域中,以便所有回调都可以使用它。

const groupObj = [];

database.child('readOnly/something').once('value').then((snap) => {
  groupObj.push(snap.val());
});

app.get('/something',(req,res)=>{
    res.render('something',{
        "groupList": groupObj
    });
});

// Individual Life Groups
app.get('/something/:name',(req,res)=>{
    const group = req.path.split("/").pop();
    console.log(groupObj.length)
    for (i = 0; i < groupObj.length; i+=1) { 
        if(groupObj[i].url   == group){
            var desiredGroup = groupObj[i];
            console.log(desiredGroup);
            break;
        }
    }
    res.render('group', desiredGroup);
    // To-Do: Add Data and Bindings
});

【讨论】:

  • 当我这样做时,我得到的只是一个空数组
猜你喜欢
  • 2020-05-11
  • 1970-01-01
  • 1970-01-01
  • 2017-11-30
  • 1970-01-01
  • 2021-01-24
  • 1970-01-01
  • 2020-01-12
  • 2015-05-09
相关资源
最近更新 更多