Cookies Psst! Do you accept cookies?

We use cookies to enhance and personalise your experience.
Please accept our cookies. Checkout our Cookie Policy for more information.

Blog with comments..

Firebase SDK is plug and play

Blog with comments...

*consider rules with DB codepen is purely an example

initialize

const firebaseConfig = {
apiKey: "YOUR_API_KEY",
authDomain: "YOUR_AUTH_DOMAIN",
databaseURL: "YOUR DATABASE URL".
projectid: "YOUR_PROJECT_ID",
storageBucket: "YOUR_ STORAGE _BUCKET",
messaging Senderld: "YOUR_MESSAGING_SENDER_ID",
appld: "YOUR_APP_ID"
measurementld: "YOUR_ MEASUREMENT_ID"
};

if (!firebase.apps.length) {
  firebase.initializeApp(firebaseConfig);
}

read, write, and display comments

var database = firebase.database();

var commentsContainer = document.getElementById("comments-container");

function displayComments() {
  database.ref("comments").on("value", function (snapshot) {
    commentsContainer.innerHTML = "";
    snapshot.forEach(function (childSnapshot) {
      var comment = childSnapshot.val().text;
      var timestamp = new Date(childSnapshot.val().timestamp);

      var commentElement = document.createElement("div");
      commentElement.classList.add("comment");

      var commentTextElement = document.createElement("div");
      commentTextElement.classList.add("comment-text");
      commentTextElement.textContent = comment;
      commentElement.appendChild(commentTextElement);

      var timestampElement = document.createElement("div");
      timestampElement.classList.add("comment-timestamp");
      timestampElement.textContent = timestamp.toLocaleString();
      commentElement.appendChild(timestampElement);

      commentsContainer.appendChild(commentElement);
    });
  });
}

displayComments();

document
  .getElementById("comment-form")
  .addEventListener("submit", function (event) {
    event.preventDefault();
    var commentInput = document.getElementById("comment-input").value;
    if (commentInput.trim() !== "") {
      var newCommentRef = database.ref("comments").push();
      newCommentRef.set({
        text: commentInput,
        timestamp: firebase.database.ServerValue.TIMESTAMP
      });
      document.getElementById("comment-input").value = "";
    }
  });

css to fit your style

body {
  font-family: Arial, sans-serif;
  background-color: #748b97;
  margin: 0;
  padding: 0;
}

.container {
  max-width: 560px;
  margin: 14px auto;
  padding: 14px;
  background-color: #fff;
  border-radius: 8px;
  box-shadow: 0 0 7px rgba(0, 0, 0, 0.1);
}

h1 {
  text-align: center;
}

img {
  max-width: 100%;
  height: auto;
  margin-bottom: 14px;
  border-radius: 8px;
}

#comments-container {
  margin-bottom: 14px;
}

.comment {
  background-color: #f9f9f9;
  padding: 10px;
  border-radius: 8px;
  margin-bottom: 10px;
  border: 1px solid #ddd;
}

.comment-text {
  margin-bottom: 5px;
}

.comment-timestamp {
  color: #888;
  font-size: 0.9em;
}

#comment-form {
  display: flex;
}

#comment-input {
  flex: 1;
  margin-right: 10px;
  padding: 8px;
  border: 1px solid #ddd;
  border-radius: 4px;
}

button {
  padding: 8px 16px;
  cursor: pointer;
  background-color: #007bff;
  color: #fff;
  border: none;
  border-radius: 4px;
}

button:hover {
  background-color: #0056b3;
}

Blog with comments...

Last Stories

What's your thoughts?

Please Register or Login to your account to be able to submit your comment.