pushRef.set()不是Firebase查询的函数

时间:2018-06-13 14:31:11

标签: javascript reactjs firebase

这是我的代码:

index

当我尝试运行它时,我收到此错误:var pushRef = currentAssignment.child('answers').push().catch(e => console.log('push', e)); pushRef.set({ // downloadURL: downURL, textAnswer: textAnswer, date: this.generateDate(), seen: false, // firebaseKey: pushRef.getKey(), workKey: this.props.questionId }) ,但根据this part of the documentation,它看起来像我正在以同样的方式做所有事情。这是谷歌推送指令的例子:

pushRef.set()

那么我错过了什么?

2 个答案:

答案 0 :(得分:1)

通过在.catch(e => console.log('push', e))后添加push(),您可以将其从firebase数据库引用更改为其他内容。所以删除它将解决这个问题。

据我所知,调用push()(不带参数)永远不会产生错误,它只是生成一个firebase引用(唯一键)客户端。

答案 1 :(得分:1)

您的代码期望PartNumber 020001 020002 020003 020004 020005 020006 020007 020009 020010 020011 020012 020013 020014 020019 020101 返回数据库引用。它没有 - catch()总是返回一个承诺。

这里使用catch是不必要的,因为没有参数的push()是一个完全本地的操作。它返回一个数据库引用,也可以像promise(ThenableReference)一样使用。

如果有任何错误可能会在这里捕获,那就是set()返回的承诺。如果在写入操作期间违反安全规则,则该调用将失败。