TypeError:request.val不是函数

时间:2018-01-18 03:50:29

标签: javascript firebase firebase-realtime-database

result2

我有一个语句const post = database.database().ref("/redux-todo/"); let obj={ value } let request = post.push(obj) console.log(request.key); ,它按预期工作。但是,当执行语句console.log(request.key)时,它会给出console.log(request.val())不是函数的错误。

request.val

请帮忙。

2 个答案:

答案 0 :(得分:1)

如果您想在数据库中的某个位置获取数据,则必须query for it。你不能只创建一个引用并在其上调用val()。

我建议你考虑在数据库参考上使用once()fetch the data那个位置。

答案 1 :(得分:1)

如果您将值推送到firebase节点,这背后的原因是返回推送数据后创建的新节点的密钥。

要从firebase获取值,您应该使用child_added事件查询新创建的节点,每当推送新节点时调用该事件并返回子节点的val()对象。同样

const post = database.database().ref("/redux-todo/");
    let obj={
            value
        }
    let request = post.push(obj)
    // the child added event is called whenever you pushed a child into your node in firebase and we can query it using on() function to get the value of child added.
    post.on("child_added", snapshot => {
       console.log(snapshot.val())
    })

注意:如果使用对象添加多个子节点,则会为每个创建的节点多次调用child_added事件。