"Uncaught TypeError: undefined is not a function" error on firebase
"Uncaught TypeError: undefined is not a function" error on firebase
我是网络开发的新手,我遇到了 firebase 错误。
我正在使用 Firebase 和 jQuery 制作一个可识别语音并将其转换为文本的网络应用程序。 (语音转文本,STT)
我必须实时推送STT结果,以便所有客户端都能看到文本。
但是,问题出现在这个事件监听器中:
finalSTTField.click(function (e) {
var message = finalSTTField.val();
sttRef.push({ text: message } );
});
作为 STT 的结果,一个字符串在 finalSTTField 中,声明如下:
var finalSTTField = $('#final_span');
我想使用 firebase 推送字符串:
var sttRef = new Firebase('https://sizzling-torch-2935.firebaseio.com/');
和
<div class="sttResultContainer">
<ul id="sttMessages"></ul>
</div>
和
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
未捕获的类型错误:未定义不是函数
每次发生点击事件时,错误计数都会增加。 (奇怪的是,计数从 10 开始)
第一个 STT 成绩单在 #final_span 跨度中表现良好。
但是我必须实时推送#final_span中的字符串...
请有人帮助我!这是我的第一个网络应用程序...
完整的源代码在这里:
full source in JSFiddle
这一行是错误的:
var sttText = data.value();
在快照上调用 val()
获取值后,您会得到一个 JSON 对象。该对象上没有定义任何方法。您的文本改为在子 属性 中,因此您可以像这样获取它:
var data = snapshot.val();
var sttText = data.text;
请注意,如果在提取数据后放置 console.log
语句,则很容易找到这样的问题:
var data = snapshot.val();
console.log(data);
这是一种非常常见的故障排除技术。在你的 fiddle 它打印:
Object {text: ""}
我是网络开发的新手,我遇到了 firebase 错误。
我正在使用 Firebase 和 jQuery 制作一个可识别语音并将其转换为文本的网络应用程序。 (语音转文本,STT)
我必须实时推送STT结果,以便所有客户端都能看到文本。
但是,问题出现在这个事件监听器中:
finalSTTField.click(function (e) {
var message = finalSTTField.val();
sttRef.push({ text: message } );
});
作为 STT 的结果,一个字符串在 finalSTTField 中,声明如下:
var finalSTTField = $('#final_span');
我想使用 firebase 推送字符串:
var sttRef = new Firebase('https://sizzling-torch-2935.firebaseio.com/');
和
<div class="sttResultContainer">
<ul id="sttMessages"></ul>
</div>
和
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 未捕获的类型错误:未定义不是函数
每次发生点击事件时,错误计数都会增加。 (奇怪的是,计数从 10 开始)
第一个 STT 成绩单在 #final_span 跨度中表现良好。 但是我必须实时推送#final_span中的字符串...
请有人帮助我!这是我的第一个网络应用程序...
完整的源代码在这里: full source in JSFiddle
这一行是错误的:
var sttText = data.value();
在快照上调用 val()
获取值后,您会得到一个 JSON 对象。该对象上没有定义任何方法。您的文本改为在子 属性 中,因此您可以像这样获取它:
var data = snapshot.val();
var sttText = data.text;
请注意,如果在提取数据后放置 console.log
语句,则很容易找到这样的问题:
var data = snapshot.val();
console.log(data);
这是一种非常常见的故障排除技术。在你的 fiddle 它打印:
Object {text: ""}