Image Firebase知道消息何时被推送?
我正在将图像以Base64的形式上传到Firebase,但我注意到它在上传到Firebase服务器之前显示在上传器的界面上 那么我怎么知道它什么时候上传完图像呢 或者,我如何推迟上传者界面上显示的图像,直到图像上传完毕,以便与所有用户同步显示 感谢您的帮助,提前谢谢 编辑:3月6日 好的,我将代码缩减到最低限度来演示这一点。虽然要观察这种效果,最好同时在两个不同的位置查看 HTML: JQuery:Image Firebase知道消息何时被推送?,image,upload,firebase,Image,Upload,Firebase,我正在将图像以Base64的形式上传到Firebase,但我注意到它在上传到Firebase服务器之前显示在上传器的界面上 那么我怎么知道它什么时候上传完图像呢 或者,我如何推迟上传者界面上显示的图像,直到图像上传完毕,以便与所有用户同步显示 感谢您的帮助,提前谢谢 编辑:3月6日 好的,我将代码缩减到最低限度来演示这一点。虽然要观察这种效果,最好同时在两个不同的位置查看 HTML: JQuery: 我认为Firebase通知不会针对部分数据发出。您能显示一段再现您的问题的最小代码吗?当服务器确
我认为Firebase通知不会针对部分数据发出。您能显示一段再现您的问题的最小代码吗?当服务器确认消息时,客户端库都会公开完成回调。如果你发布了一些代码,我们可以看到你是否有效地使用了它。感谢Frank&Rob的回复,我已经编辑了这个问题以包含必要的代码。
<script src='https://cdn.firebase.com/js/client/2.0.4/firebase.js'></script>
<ul id="messages"></ul>
<input id="upload" type="file" accept="image/*" onchange="uploadImage()">
var dataRef = new Firebase('https://citruso.firebaseio.com/');
var messagesRef = dataRef.child('Messages');
messagesRef.on('child_added', function(snapshot) {
var message = snapshot.val();
var text = message.text;
if (text.substring(0,11) === "data:image/") {
$('#messages').append('<img class="message-image" src="' + text + '">');
}
else {
$('#messages').append('<li>' + text + '</li>');
}
});
function uploadImage() {
var file = document.querySelector('#upload').files[0];
var reader = new FileReader();
reader.onloadend = function () {
messagesRef.push({text: reader.result});
}
if (file) {
if (file.size < 10000000) {
reader.readAsDataURL(file);
}
else {
alert('File size cannot exceed 10mb.');
}
}
}