The update function in Firebase is slower than a button click in the browser

I'm currently working on a Vue real-time voting app that uses Firebase to store the vote count data. I've successfully set up the database, incremented the number of votes, and displayed the most recent data in my application. However, I encountered an issue where clicking the button to update the vote count by one only changes it within the browser and not in Firebase.

Could it be that I'm utilizing the update function incorrectly?

...methods:{
upVotePingu() {
      let pingu = db.collection('candidates').doc('pingu')

      pingu.set({
        votes: this.pingu.votes++
      })

      console.log('voted')
    }
...mounted(){
db.collection('candidates')
      .get()
      .then(query => {
        query.forEach(doc => {
          const dbVote = {
            vote: doc.data().votes
          }
          this.pingu.votes = dbVote.vote
          console.log(this.pingu.votes)
        })
      })
<button @click="upVotePingu">Vote</button>
data() {
    return {
      pingu: {
        votes: 0
      }
    }

Answer №1

Here are the steps you need to take:

  Increase the vote count by one
  Update the database with the new vote count

Furthermore, it's recommended to use FieldValue.increment for safely incrementing a value in a field. Check out more information at this link and this reference guide

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Picking specific elements of a cell in HTML table with Selenium

Recently, I have incorporated Selenium into my data collection process for a website that heavily utilizes JavaScript. While I have successfully extracted cells from the table, I am now faced with the challenge of isolating the specific "Individual" string ...

Issue encountered with adaptor.fill operation

Below is the C# code snippet: using System; using System.Web; using System.Web.Services; using System.Web.Services.Protocols; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.Diagnostics; public partial class _Upda ...

Mastering the art of seamless navigation within a single page through the magic of

I have two HTML pages: "Login.html" and "index.html". Instead of a normal href linking, I want the user to navigate to "index.html" when they click on the login button. Furthermore, I want the index page to be displayed within the codes of login.html, cre ...

Activate the Navbar by clicking on the bar and change the color of the icon

Is it possible to change the background color and icon color when clicking on the bar (active bar)? If not, is there an option to switch the icon with a different color? I've tried modifying my code but haven't seen any changes. Instead of using ...

Sending object details to modal in AngularJS

I have implemented an information screen with a repeater to display details about a specific user. My question is, how can I efficiently pass the data of a particular user object into a modal window template when the "Edit" button is clicked? HTML <f ...

Module Express - Transferring Object to Main Application

Having issues with passing an object in Express from a module to my application. The process is straightforward - gathering input from a form, validating the string, and returning either null or an object. Despite trying various methods, I'm still fac ...

Display a div exclusively on a certain page and ensure scripts are loaded from various files simultaneously

I have defined a div with the name uname in a file named header.html. I want to hide this div on only two specific pages, which are home.html and dash.html. The header.html file is loaded on both of these pages. How can I achieve hiding the uname div on h ...

Discover the hidden truth: Unveiling the enigma of React

I'm currently learning React and I've been working on some apps to enhance my skills and deepen my understanding. Right now, I am facing a challenge where I need to incorporate the logged user information into the Redux state. However, whenever I ...

How to use a filtering select dropdown in React to easily sort and search options?

Recently, I started learning React and created a basic app that utilizes a countries API. The app is able to show all the countries and has a search input for filtering. Now, I want to enhance it by adding a select dropdown menu to filter countries by reg ...

Tips on identifying the method to import a module

Currently, I am including modules into my Node project like this: import * as name from "moduleName"; Instead of the old way: var name = require("moduleName"); In the past, we used require in Node projects. My question is, is there a difference in ...

When the value of a Formcontrol is changed using valueAccessor.writeValue(), it remains unchanged

Encountering a similar issue as seen in this stack overflow post, but the solution provided isn't resolving the issue. Perhaps you can offer assistance on that thread. In my scenario, I have created a directive for formatting phone numbers: import { ...

``In a jade view, navigating through JavaScript object properties leads to the addition of quotation marks around strings

Utilizing the npm module traverse to filter data from mongodb / mongoose has been quite helpful for me. Here is an example of the kind of data I might receive: [ { rating: 5, title: { da: 'Web udvikling', en: 'Web Development' } } ...

Guide to deploying a factory contract using solidity @0.5.0 with Node.js

Repository: https://github.com/aljmiller87/ethereum-dispute-resolution In my solidity file @0.5.0, I have a Factory Contract and a child contract. Although I am able to compile it with some trial and error noted in the commented-out lines in ethereum/comp ...

Looking for advice on successfully implementing createMultiMaterialObject in THREE.js version r62?

I am having trouble getting createMultiMaterialObject to work as expected. My goal is to have a wireframe material displayed on top of a solid material. However, the multimaterial function only seems to display the first material in the array. Here is the ...

PHP code cannot be outputted to JavaScript due to a syntax error

Although there is a syntax error, the code seems to be working. I am curious about how to make it syntactically correct. The provided code snippet is part of a script that sets up variables for an Ajax call. Depending on the scope, the corresponding varia ...

Tips for Choosing Specific Ranges in Your Findings

Can data retrieval be customized to show only specific columns based on preferences, such as 1, 5, 8, 11, and 23? function enterRepName(){ var ui = SpreadsheetApp.getUi(); var input = ui.prompt("Please enter your rep name.",ui.ButtonSet.OK_CAN ...

Is utilizing getStaticProps the best approach for handling offline data in Next.js?

My current project in Next.js involves offline static data for the webpage content. I am using an array to store the data for later mapping. Do you recommend using getStaticProps in this scenario? For example, here is a snippet of my code: import { data } ...

Enhance the functionality of VTextField in Vuetify

Exploring the idea of extending a vuetify VTextField component to create a reusable password-field, I encountered warnings against prop mutation in Vuejs, deeming it an "anti-pattern". One approach I tried involved using a computed property to override th ...

Instead of storing the result in a variable, return the value directly in Angular2

This particular code snippet is designed to load a JSON file asynchronously and place the result into the variable _values. private getValue(name) { this.http.get('http://localhost:8080/getValue/' + name) .subscribe(res => this._values = re ...

Tips for expanding third-party classes in a versatile manner using Typescript

tl;dr: Seeking a better way to extend 3rd-party lib's class in JavaScript. Imagine having a library that defines a basic entity called Animal: class Animal { type: string; } Now, you want to create specific instances like a dog and a cat: const ...