Updating text with JavaScript and Firebase












-2














My problem is this causes more lag as time goes on. I use this commonly to chat with my friends, and I need it the site to update in real-time whenever a message gets edited/deleted/added. Any solutions?



function update(){
var i = 0;
var leadsRef = firebase.database().ref(room);
leadsRef.on('value', function(snapshot) {
var old_room = room;
snapshot.forEach(function(childSnapshot) {
var childData = childSnapshot.val();
if(i === 0){
document.getElementById("comments").innerHTML = "";
}
document.getElementById("comments").innerHTML += encode(childData.datee);
document.getElementById("comments").innerHTML += " ";
document.getElementById("comments").innerHTML += encode(childData.namee);
document.getElementById("comments").innerHTML += ": ";
document.getElementById("comments").innerHTML += encode(childData.contentss);
document.getElementById("comments").innerHTML += "<br>";
i += 1
}); i = 0; return 0;
});
}
window.setInterval(update, 100);


The full code can be found here.










share|improve this question









New contributor




MilkyWay90 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
















  • 1




    What do you mean by "I need it to be real-time."?
    – guest271314
    13 hours ago










  • @guest271314 As in the site should update in real-time when somebody types in a message
    – MilkyWay90
    13 hours ago










  • Have you tried using a <form> element, and either change of input event attached to a <textarea> or <input type="text"> element, or an <input type="submit"> for the user to press when they want to send a message? Am not certain about why setInterval is being used, though should be able to be substituted for requestAnimationFrame and logic within the function body. Does the code at the question currently produce the expected result?
    – guest271314
    13 hours ago












  • @guest271314 Not sure hwo to do that, could you put the complete code in an answer?
    – MilkyWay90
    13 hours ago












  • Have not tried Firebase. Why does update need to be called every 100 milliseconds to re-declare leadsRef and reattach value event to leadsRef variable?
    – guest271314
    13 hours ago


















-2














My problem is this causes more lag as time goes on. I use this commonly to chat with my friends, and I need it the site to update in real-time whenever a message gets edited/deleted/added. Any solutions?



function update(){
var i = 0;
var leadsRef = firebase.database().ref(room);
leadsRef.on('value', function(snapshot) {
var old_room = room;
snapshot.forEach(function(childSnapshot) {
var childData = childSnapshot.val();
if(i === 0){
document.getElementById("comments").innerHTML = "";
}
document.getElementById("comments").innerHTML += encode(childData.datee);
document.getElementById("comments").innerHTML += " ";
document.getElementById("comments").innerHTML += encode(childData.namee);
document.getElementById("comments").innerHTML += ": ";
document.getElementById("comments").innerHTML += encode(childData.contentss);
document.getElementById("comments").innerHTML += "<br>";
i += 1
}); i = 0; return 0;
});
}
window.setInterval(update, 100);


The full code can be found here.










share|improve this question









New contributor




MilkyWay90 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
















  • 1




    What do you mean by "I need it to be real-time."?
    – guest271314
    13 hours ago










  • @guest271314 As in the site should update in real-time when somebody types in a message
    – MilkyWay90
    13 hours ago










  • Have you tried using a <form> element, and either change of input event attached to a <textarea> or <input type="text"> element, or an <input type="submit"> for the user to press when they want to send a message? Am not certain about why setInterval is being used, though should be able to be substituted for requestAnimationFrame and logic within the function body. Does the code at the question currently produce the expected result?
    – guest271314
    13 hours ago












  • @guest271314 Not sure hwo to do that, could you put the complete code in an answer?
    – MilkyWay90
    13 hours ago












  • Have not tried Firebase. Why does update need to be called every 100 milliseconds to re-declare leadsRef and reattach value event to leadsRef variable?
    – guest271314
    13 hours ago
















-2












-2








-2







My problem is this causes more lag as time goes on. I use this commonly to chat with my friends, and I need it the site to update in real-time whenever a message gets edited/deleted/added. Any solutions?



function update(){
var i = 0;
var leadsRef = firebase.database().ref(room);
leadsRef.on('value', function(snapshot) {
var old_room = room;
snapshot.forEach(function(childSnapshot) {
var childData = childSnapshot.val();
if(i === 0){
document.getElementById("comments").innerHTML = "";
}
document.getElementById("comments").innerHTML += encode(childData.datee);
document.getElementById("comments").innerHTML += " ";
document.getElementById("comments").innerHTML += encode(childData.namee);
document.getElementById("comments").innerHTML += ": ";
document.getElementById("comments").innerHTML += encode(childData.contentss);
document.getElementById("comments").innerHTML += "<br>";
i += 1
}); i = 0; return 0;
});
}
window.setInterval(update, 100);


The full code can be found here.










share|improve this question









New contributor




MilkyWay90 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











My problem is this causes more lag as time goes on. I use this commonly to chat with my friends, and I need it the site to update in real-time whenever a message gets edited/deleted/added. Any solutions?



function update(){
var i = 0;
var leadsRef = firebase.database().ref(room);
leadsRef.on('value', function(snapshot) {
var old_room = room;
snapshot.forEach(function(childSnapshot) {
var childData = childSnapshot.val();
if(i === 0){
document.getElementById("comments").innerHTML = "";
}
document.getElementById("comments").innerHTML += encode(childData.datee);
document.getElementById("comments").innerHTML += " ";
document.getElementById("comments").innerHTML += encode(childData.namee);
document.getElementById("comments").innerHTML += ": ";
document.getElementById("comments").innerHTML += encode(childData.contentss);
document.getElementById("comments").innerHTML += "<br>";
i += 1
}); i = 0; return 0;
});
}
window.setInterval(update, 100);


The full code can be found here.







javascript performance html5 firebase






share|improve this question









New contributor




MilkyWay90 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question









New contributor




MilkyWay90 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question








edited 25 mins ago









Jamal

30.3k11116226




30.3k11116226






New contributor




MilkyWay90 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked 13 hours ago









MilkyWay90

15




15




New contributor




MilkyWay90 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





MilkyWay90 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






MilkyWay90 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.








  • 1




    What do you mean by "I need it to be real-time."?
    – guest271314
    13 hours ago










  • @guest271314 As in the site should update in real-time when somebody types in a message
    – MilkyWay90
    13 hours ago










  • Have you tried using a <form> element, and either change of input event attached to a <textarea> or <input type="text"> element, or an <input type="submit"> for the user to press when they want to send a message? Am not certain about why setInterval is being used, though should be able to be substituted for requestAnimationFrame and logic within the function body. Does the code at the question currently produce the expected result?
    – guest271314
    13 hours ago












  • @guest271314 Not sure hwo to do that, could you put the complete code in an answer?
    – MilkyWay90
    13 hours ago












  • Have not tried Firebase. Why does update need to be called every 100 milliseconds to re-declare leadsRef and reattach value event to leadsRef variable?
    – guest271314
    13 hours ago
















  • 1




    What do you mean by "I need it to be real-time."?
    – guest271314
    13 hours ago










  • @guest271314 As in the site should update in real-time when somebody types in a message
    – MilkyWay90
    13 hours ago










  • Have you tried using a <form> element, and either change of input event attached to a <textarea> or <input type="text"> element, or an <input type="submit"> for the user to press when they want to send a message? Am not certain about why setInterval is being used, though should be able to be substituted for requestAnimationFrame and logic within the function body. Does the code at the question currently produce the expected result?
    – guest271314
    13 hours ago












  • @guest271314 Not sure hwo to do that, could you put the complete code in an answer?
    – MilkyWay90
    13 hours ago












  • Have not tried Firebase. Why does update need to be called every 100 milliseconds to re-declare leadsRef and reattach value event to leadsRef variable?
    – guest271314
    13 hours ago










1




1




What do you mean by "I need it to be real-time."?
– guest271314
13 hours ago




What do you mean by "I need it to be real-time."?
– guest271314
13 hours ago












@guest271314 As in the site should update in real-time when somebody types in a message
– MilkyWay90
13 hours ago




@guest271314 As in the site should update in real-time when somebody types in a message
– MilkyWay90
13 hours ago












Have you tried using a <form> element, and either change of input event attached to a <textarea> or <input type="text"> element, or an <input type="submit"> for the user to press when they want to send a message? Am not certain about why setInterval is being used, though should be able to be substituted for requestAnimationFrame and logic within the function body. Does the code at the question currently produce the expected result?
– guest271314
13 hours ago






Have you tried using a <form> element, and either change of input event attached to a <textarea> or <input type="text"> element, or an <input type="submit"> for the user to press when they want to send a message? Am not certain about why setInterval is being used, though should be able to be substituted for requestAnimationFrame and logic within the function body. Does the code at the question currently produce the expected result?
– guest271314
13 hours ago














@guest271314 Not sure hwo to do that, could you put the complete code in an answer?
– MilkyWay90
13 hours ago






@guest271314 Not sure hwo to do that, could you put the complete code in an answer?
– MilkyWay90
13 hours ago














Have not tried Firebase. Why does update need to be called every 100 milliseconds to re-declare leadsRef and reattach value event to leadsRef variable?
– guest271314
13 hours ago






Have not tried Firebase. Why does update need to be called every 100 milliseconds to re-declare leadsRef and reattach value event to leadsRef variable?
– guest271314
13 hours ago












1 Answer
1






active

oldest

votes


















1














1. Leaking



Between:



window.setInterval(update, 100);


And:



leadsRef.on('value', function(snapshot) {...}


You are adding a new copy of the event handler every 100ms. which just stacks the handle so it runs (time elapsed since page load)/100ms times every time data hits the pipe.



Setting your on('value') handler should fire every time firebase get new data. It's a watcher you've got here not a getter.



2. Redundant Look ups



document.getElementById("comments")


This can be held in a variable and reused rather than finding the element for every stub of text.



3. innerHTML



Setting innerHTML from user input is considered bad practice, use innerText instead. Also build you full string(if possible) and and update all at once, this limits the browser having to re-render the page



4. Data / Output Structure



Each message is an individual item and should be treated as such, showing all the messages into a single p element muddies the distinction and make addressing an individual item difficult if desired



Other/Misc



You should be able to replace the provided code with somthing like this (warning untested, also assumes comments is a div not a p as in the linked code):



firebase.database().ref(room).on('value', function (snapshot) {
var comments = ;
var commentParent = document.getElementById("comments")
snapshot.forEach(function (childSnapshot) {
var childData = childSnapshot.val();
var commentElm = document.createElement("div");
commentElm.setAttribute("class", "comment")
commentElm.innerText = encode(childData.datee) + " " + encode(childData.namee) + ": " + encode(childData.contentss);
comments.push(commentElm)
});
commentParent.innerHTML=''
commentParent.append(...comments)
return 0;
});


Also there is an additional bug with room handling, when changing rooms the handler should be removed and recreated for the new room.



And your linked code pollutes all over the global space >.> not as important since it's not a shared lib but it still rubs me the wrong way.



jsfiddle: https://jsfiddle.net/plloi/fc37pmqa/






share|improve this answer























  • Keeps on outputting "[object HTMLDivElement],"
    – MilkyWay90
    11 hours ago










  • Missed a spread operator, updated
    – Shaun H
    11 hours ago










  • Okay, let me test it
    – MilkyWay90
    11 hours ago










  • Okay, that issue is resolved, but now it keeps on outputting the entire script every second
    – MilkyWay90
    11 hours ago










  • Like if it said "MW90: hi", it would keep on outputting "MW90: hi" every second. Wait, that just can be fixed by setting document.getElementById("comments") to
    – MilkyWay90
    11 hours ago













Your Answer





StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
});
});
}, "mathjax-editing");

StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "196"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});






MilkyWay90 is a new contributor. Be nice, and check out our Code of Conduct.










draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f210829%2fupdating-text-with-javascript-and-firebase%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









1














1. Leaking



Between:



window.setInterval(update, 100);


And:



leadsRef.on('value', function(snapshot) {...}


You are adding a new copy of the event handler every 100ms. which just stacks the handle so it runs (time elapsed since page load)/100ms times every time data hits the pipe.



Setting your on('value') handler should fire every time firebase get new data. It's a watcher you've got here not a getter.



2. Redundant Look ups



document.getElementById("comments")


This can be held in a variable and reused rather than finding the element for every stub of text.



3. innerHTML



Setting innerHTML from user input is considered bad practice, use innerText instead. Also build you full string(if possible) and and update all at once, this limits the browser having to re-render the page



4. Data / Output Structure



Each message is an individual item and should be treated as such, showing all the messages into a single p element muddies the distinction and make addressing an individual item difficult if desired



Other/Misc



You should be able to replace the provided code with somthing like this (warning untested, also assumes comments is a div not a p as in the linked code):



firebase.database().ref(room).on('value', function (snapshot) {
var comments = ;
var commentParent = document.getElementById("comments")
snapshot.forEach(function (childSnapshot) {
var childData = childSnapshot.val();
var commentElm = document.createElement("div");
commentElm.setAttribute("class", "comment")
commentElm.innerText = encode(childData.datee) + " " + encode(childData.namee) + ": " + encode(childData.contentss);
comments.push(commentElm)
});
commentParent.innerHTML=''
commentParent.append(...comments)
return 0;
});


Also there is an additional bug with room handling, when changing rooms the handler should be removed and recreated for the new room.



And your linked code pollutes all over the global space >.> not as important since it's not a shared lib but it still rubs me the wrong way.



jsfiddle: https://jsfiddle.net/plloi/fc37pmqa/






share|improve this answer























  • Keeps on outputting "[object HTMLDivElement],"
    – MilkyWay90
    11 hours ago










  • Missed a spread operator, updated
    – Shaun H
    11 hours ago










  • Okay, let me test it
    – MilkyWay90
    11 hours ago










  • Okay, that issue is resolved, but now it keeps on outputting the entire script every second
    – MilkyWay90
    11 hours ago










  • Like if it said "MW90: hi", it would keep on outputting "MW90: hi" every second. Wait, that just can be fixed by setting document.getElementById("comments") to
    – MilkyWay90
    11 hours ago


















1














1. Leaking



Between:



window.setInterval(update, 100);


And:



leadsRef.on('value', function(snapshot) {...}


You are adding a new copy of the event handler every 100ms. which just stacks the handle so it runs (time elapsed since page load)/100ms times every time data hits the pipe.



Setting your on('value') handler should fire every time firebase get new data. It's a watcher you've got here not a getter.



2. Redundant Look ups



document.getElementById("comments")


This can be held in a variable and reused rather than finding the element for every stub of text.



3. innerHTML



Setting innerHTML from user input is considered bad practice, use innerText instead. Also build you full string(if possible) and and update all at once, this limits the browser having to re-render the page



4. Data / Output Structure



Each message is an individual item and should be treated as such, showing all the messages into a single p element muddies the distinction and make addressing an individual item difficult if desired



Other/Misc



You should be able to replace the provided code with somthing like this (warning untested, also assumes comments is a div not a p as in the linked code):



firebase.database().ref(room).on('value', function (snapshot) {
var comments = ;
var commentParent = document.getElementById("comments")
snapshot.forEach(function (childSnapshot) {
var childData = childSnapshot.val();
var commentElm = document.createElement("div");
commentElm.setAttribute("class", "comment")
commentElm.innerText = encode(childData.datee) + " " + encode(childData.namee) + ": " + encode(childData.contentss);
comments.push(commentElm)
});
commentParent.innerHTML=''
commentParent.append(...comments)
return 0;
});


Also there is an additional bug with room handling, when changing rooms the handler should be removed and recreated for the new room.



And your linked code pollutes all over the global space >.> not as important since it's not a shared lib but it still rubs me the wrong way.



jsfiddle: https://jsfiddle.net/plloi/fc37pmqa/






share|improve this answer























  • Keeps on outputting "[object HTMLDivElement],"
    – MilkyWay90
    11 hours ago










  • Missed a spread operator, updated
    – Shaun H
    11 hours ago










  • Okay, let me test it
    – MilkyWay90
    11 hours ago










  • Okay, that issue is resolved, but now it keeps on outputting the entire script every second
    – MilkyWay90
    11 hours ago










  • Like if it said "MW90: hi", it would keep on outputting "MW90: hi" every second. Wait, that just can be fixed by setting document.getElementById("comments") to
    – MilkyWay90
    11 hours ago
















1












1








1






1. Leaking



Between:



window.setInterval(update, 100);


And:



leadsRef.on('value', function(snapshot) {...}


You are adding a new copy of the event handler every 100ms. which just stacks the handle so it runs (time elapsed since page load)/100ms times every time data hits the pipe.



Setting your on('value') handler should fire every time firebase get new data. It's a watcher you've got here not a getter.



2. Redundant Look ups



document.getElementById("comments")


This can be held in a variable and reused rather than finding the element for every stub of text.



3. innerHTML



Setting innerHTML from user input is considered bad practice, use innerText instead. Also build you full string(if possible) and and update all at once, this limits the browser having to re-render the page



4. Data / Output Structure



Each message is an individual item and should be treated as such, showing all the messages into a single p element muddies the distinction and make addressing an individual item difficult if desired



Other/Misc



You should be able to replace the provided code with somthing like this (warning untested, also assumes comments is a div not a p as in the linked code):



firebase.database().ref(room).on('value', function (snapshot) {
var comments = ;
var commentParent = document.getElementById("comments")
snapshot.forEach(function (childSnapshot) {
var childData = childSnapshot.val();
var commentElm = document.createElement("div");
commentElm.setAttribute("class", "comment")
commentElm.innerText = encode(childData.datee) + " " + encode(childData.namee) + ": " + encode(childData.contentss);
comments.push(commentElm)
});
commentParent.innerHTML=''
commentParent.append(...comments)
return 0;
});


Also there is an additional bug with room handling, when changing rooms the handler should be removed and recreated for the new room.



And your linked code pollutes all over the global space >.> not as important since it's not a shared lib but it still rubs me the wrong way.



jsfiddle: https://jsfiddle.net/plloi/fc37pmqa/






share|improve this answer














1. Leaking



Between:



window.setInterval(update, 100);


And:



leadsRef.on('value', function(snapshot) {...}


You are adding a new copy of the event handler every 100ms. which just stacks the handle so it runs (time elapsed since page load)/100ms times every time data hits the pipe.



Setting your on('value') handler should fire every time firebase get new data. It's a watcher you've got here not a getter.



2. Redundant Look ups



document.getElementById("comments")


This can be held in a variable and reused rather than finding the element for every stub of text.



3. innerHTML



Setting innerHTML from user input is considered bad practice, use innerText instead. Also build you full string(if possible) and and update all at once, this limits the browser having to re-render the page



4. Data / Output Structure



Each message is an individual item and should be treated as such, showing all the messages into a single p element muddies the distinction and make addressing an individual item difficult if desired



Other/Misc



You should be able to replace the provided code with somthing like this (warning untested, also assumes comments is a div not a p as in the linked code):



firebase.database().ref(room).on('value', function (snapshot) {
var comments = ;
var commentParent = document.getElementById("comments")
snapshot.forEach(function (childSnapshot) {
var childData = childSnapshot.val();
var commentElm = document.createElement("div");
commentElm.setAttribute("class", "comment")
commentElm.innerText = encode(childData.datee) + " " + encode(childData.namee) + ": " + encode(childData.contentss);
comments.push(commentElm)
});
commentParent.innerHTML=''
commentParent.append(...comments)
return 0;
});


Also there is an additional bug with room handling, when changing rooms the handler should be removed and recreated for the new room.



And your linked code pollutes all over the global space >.> not as important since it's not a shared lib but it still rubs me the wrong way.



jsfiddle: https://jsfiddle.net/plloi/fc37pmqa/







share|improve this answer














share|improve this answer



share|improve this answer








edited 11 hours ago

























answered 11 hours ago









Shaun H

49726




49726












  • Keeps on outputting "[object HTMLDivElement],"
    – MilkyWay90
    11 hours ago










  • Missed a spread operator, updated
    – Shaun H
    11 hours ago










  • Okay, let me test it
    – MilkyWay90
    11 hours ago










  • Okay, that issue is resolved, but now it keeps on outputting the entire script every second
    – MilkyWay90
    11 hours ago










  • Like if it said "MW90: hi", it would keep on outputting "MW90: hi" every second. Wait, that just can be fixed by setting document.getElementById("comments") to
    – MilkyWay90
    11 hours ago




















  • Keeps on outputting "[object HTMLDivElement],"
    – MilkyWay90
    11 hours ago










  • Missed a spread operator, updated
    – Shaun H
    11 hours ago










  • Okay, let me test it
    – MilkyWay90
    11 hours ago










  • Okay, that issue is resolved, but now it keeps on outputting the entire script every second
    – MilkyWay90
    11 hours ago










  • Like if it said "MW90: hi", it would keep on outputting "MW90: hi" every second. Wait, that just can be fixed by setting document.getElementById("comments") to
    – MilkyWay90
    11 hours ago


















Keeps on outputting "[object HTMLDivElement],"
– MilkyWay90
11 hours ago




Keeps on outputting "[object HTMLDivElement],"
– MilkyWay90
11 hours ago












Missed a spread operator, updated
– Shaun H
11 hours ago




Missed a spread operator, updated
– Shaun H
11 hours ago












Okay, let me test it
– MilkyWay90
11 hours ago




Okay, let me test it
– MilkyWay90
11 hours ago












Okay, that issue is resolved, but now it keeps on outputting the entire script every second
– MilkyWay90
11 hours ago




Okay, that issue is resolved, but now it keeps on outputting the entire script every second
– MilkyWay90
11 hours ago












Like if it said "MW90: hi", it would keep on outputting "MW90: hi" every second. Wait, that just can be fixed by setting document.getElementById("comments") to
– MilkyWay90
11 hours ago






Like if it said "MW90: hi", it would keep on outputting "MW90: hi" every second. Wait, that just can be fixed by setting document.getElementById("comments") to
– MilkyWay90
11 hours ago












MilkyWay90 is a new contributor. Be nice, and check out our Code of Conduct.










draft saved

draft discarded


















MilkyWay90 is a new contributor. Be nice, and check out our Code of Conduct.













MilkyWay90 is a new contributor. Be nice, and check out our Code of Conduct.












MilkyWay90 is a new contributor. Be nice, and check out our Code of Conduct.
















Thanks for contributing an answer to Code Review Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


Use MathJax to format equations. MathJax reference.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f210829%2fupdating-text-with-javascript-and-firebase%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Quarter-circle Tiles

build a pushdown automaton that recognizes the reverse language of a given pushdown automaton?

Mont Emei