首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >“未定义的TypeError:未定义不是函数”在firebase上的错误

“未定义的TypeError:未定义不是函数”在firebase上的错误
EN

Stack Overflow用户
提问于 2015-01-25 12:24:36
回答 1查看 1.4K关注 0票数 1

我是非常新的网页开发,我有一个错误与防火墙错误。

我正在使用Firebase和jQuery来制作一个web应用程序,它可以识别声音并将其翻译成文本。(演讲对文本,STT)

我必须实时推送STT结果,以便所有客户端都能看到文本。

但是,此事件侦听器中会出现问题:

代码语言:javascript
代码运行次数:0
运行
复制
finalSTTField.click(function (e) {
        var message = finalSTTField.val();
        sttRef.push({ text: message } );
    });

作为STT的结果,finalSTTField中有一个字符串,声明如下:

代码语言:javascript
代码运行次数:0
运行
复制
var finalSTTField = $('#final_span');

我想通过使用火基来推送字符串:

代码语言:javascript
代码运行次数:0
运行
复制
var sttRef = new Firebase('https://sizzling-torch-2935.firebaseio.com/');

代码语言:javascript
代码运行次数:0
运行
复制
<div class="sttResultContainer">
    <ul id="sttMessages"></ul>
</div>

使用

代码语言:javascript
代码运行次数:0
运行
复制
var sttResults = $('#sttMessages');

sttRef.limitToLast(10).on('child_added', function (snapshot) {
        var data = snapshot.val();
        var sttText = data.value();

        var messageElement = $("<li>");
        messageElement.text(sttText);
        sttResults.append(messageElement);
        sttResults[0].scrollTop = sttResults[0].scrollHeight;
    });

但在sttResults中什么也没有显示出来。

在chrome浏览器上的错误消息是: firebase.js:26未定义的TypeError:未定义不是一个函数

每次发生单击事件时,错误计数都会增加。(奇怪的是,计数从10开始)

第一批STT转录本在#final_span范围内表现良好。但我必须在#final_span中实时推送字符串.

谁来帮帮我!这是我的第一个网络应用..。

完整的源代码在这里:JSFiddle中的全源

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-25 14:36:53

这句话是错的:

代码语言:javascript
代码运行次数:0
运行
复制
var sttText = data.value();

在调用快照上的val()以获取值之后,将得到一个JSON对象。没有在该对象上定义任何方法。相反,您的文本位于子属性中,因此您可以获得如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
var data = snapshot.val();
var sttText = data.text;

请注意,如果在提取数据后放置console.log语句,则很容易找到这样的问题:

代码语言:javascript
代码运行次数:0
运行
复制
var data = snapshot.val();
console.log(data);

这是一种非常常见的故障排除技术。在你的小提琴上印着:

对象{文本:""}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28136344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档