Is there a fast method to efficiently upload a large quantity of documents to Google Firestore?

Currently, I am working on a React Native game that involves users generating cards every 6 seconds. These cards are then sent to Google Firestore through my established Firebase connection.

The rate at which users generate cards is quite rapid: 1 card every 6 seconds equates to 10 per minute, or 600 per hour. Given Google Firebase's daily write limit of 20,000 for free, having just 34 users active on the service for an hour would surpass this threshold.

To address this issue, I have devised a temporary solution of storing the cards and associated data in the user's local storage using AsyncStorage before uploading them once they exceed a certain threshold. The code snippet responsible for this is outlined below:


// Access the user's inventory.
// Append the new card to their inventory. 
// If the inventory size surpasses 15 items, batch write it to Firestore.

My question is - does this method effectively and securely manage the inflow of large amounts of swiftly incoming data?

Answer №1

Utilizing a batch write will not decrease the total number of billed write operations needed to store your documents. Even if you batch write 5 documents at once, it still counts as 5 individual writes.

In this scenario, the best solution is to assign all writing tasks to a single entity that can manage and monitor the writes based on your specified limits. While this may incur additional costs, it is more efficient than trying to bypass the free limits by paying for extra services. Remember, these limits are in place to support development testing, not for running full production applications.

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

.slideDown Not Functioning Properly on my System

After successfully linking my index.html file to jQuery, I am facing an issue with the .slideDown code. I'm not sure if there is a problem with the code itself or if I didn't attach jQuery correctly. Can anyone help me troubleshoot this? Below i ...

Unable to utilize await within a then statement to make a subsequent API call in a React application

Here is my scenario: I am making a call to one API, and in the `then` section of that API call, I am making another API call. The output of the first API will be passed as input to the second API. await axios .post(process.env + '/certificates/uplo ...

JavaScript: Invoking a function within another function via an HTML document

I have a unique scenario where I have one function inside another and I am looking to call the inner function from an HTML document. <head> <meta charset="utf-8"> <title></title> <link rel="stylesheet" href="style.css"> ...

The Angular frontend appears to be experiencing difficulties displaying content on the website

I'm currently working through the AngularJS on Rails tutorial from Thinkster(). Check out my progress so far https://jsfiddle.net/dcbavw4e/ I'm not seeing anything on the web page. I've already installed node.js and npm. Are there any othe ...

What is the best way to incorporate a rectangle or arrow into my canvas design?

Looking for a way to enhance my html canvas wind direction code, here is how it currently looks: var x, y, r, ctx, radians; ctx = window.compass.getContext("2d"); radians = 0.0174533 * (10 - 90); x = ctx.canvas.width / 2; y = ctx.canvas.height / ...

`meteor.js and npm both rely on the fs module for file

I'm feeling a bit lost, as I need to use the fs package with Meteor.js framework. Starting from meteor version 0.6 onwards, I know that I should use Npm.require in the following way: var fs = Npm.require('fs'); However, when I try this, a ...

Unable to modify the content of a table cell after triggering a Bootstrap modal event

Looking to update values in rows of a table? Here is an example table: https://i.sstatic.net/6l4f3.png I need to update the title per selected row. After selecting the first row, changing the value works fine. However, when I choose the second row, the ...

I am looking to showcase images beside individuals' names or photos on my website in a vertical arrangement, similar to how it is done on Facebook

Looking for suggestions on how to display images uploaded by users on my webpage in a way similar to Facebook, with the user's photo displayed beside each image. Any recommendations or website links would be greatly appreciated. Thanks, Santosh Sahu ...

Trouble with React component not updating after URL parameter change despite utilizing useEffect hook for data fetching

Let's address an important issue: I've created a component that needs to maintain the same structure across approximately 25 different items or pages. To achieve this in React, I am dynamically passing URL parameters into my API request as shown ...

If the currency is not in USD, please refrain from using the $ symbol before the amount

Is it possible to modify this function so that when the currency is not USD, the $ sign is not added in front of the amount? var convertToCurrency = number => { if (!number) return ''; return new Intl.NumberFormat('en', { ...

Encountering an issue while trying to compile my Angular 6 project - an ERROR keeps

Upon initiating my project with ng serve, I encountered a troublesome error. Despite updating my TypeScript, the issue persisted. Here is the detailed error message: ERROR in node_modules/@types/node/assert.d.ts(3,68): error TS1144: '{' or ...

Troubleshooting AngularJS form submission with missing data

Is there a way to modify AngularJS to save form data into a database using PHP as the backend? Below is the HTML form code: <form ng-submit="newContactSubmit()"> <label>FirstName<input type="text" name="contact_firstname" required n ...

Add fresh inline designs to a React high-order component creation

Applying a common HOC pattern like this can be quite effective. However, there are instances where you may not want a component to be wrapped, but rather just extended. This is the challenge I am facing here. Wrapper HOC const flexboxContainerStyles = { ...

Show a notification when utilizing AJAX requests

I consist of two separate files: one written in PHP and the other one in JavaScript and HTML. PHP file : <?php session_start(); //start session $_SESSION['data'] = "The content should be displayed as alert in the JS file"; JS/HTML File: & ...

"Upon invoking the console log, an empty value is being returned when attempting to access the

Why is console.log returning a blank line when trying to retrieve the value of a text input variable? HTML <label for="subject">Subject</label> <input type="text" id=" ...

Pressing the button will activate the Ctrl+z and Ctrl+y key commands

I have created two separate buttons for triggering actions equivalent to pressing Ctrl+z and Ctrl+y. I am attempting to make these actions occur with the click of a single button. However, when trying to set up the functionality to trigger Ctrl+z and Ctr ...

The presence of an additional bracket is being triggered by the JSON array following

Currently, I am developing a function in Freemarker to iterate through all selected checkboxes and then display the same response on the form itself. The form is structured in Freemarker format, and I am utilizing JavaScript to create separate arrays for e ...

Using JavaScript and PHP to dynamically update a field based on two input values within a row of a table

Currently in the process of developing a dynamic profit margin calculator for a personal project. Overview Data is retrieved from a database table using SQL and PHP After necessary validations, the data is dynamically displayed as rows in an HTML table ...

Using Gulp Filter in Conjunction with Source Maps

My initial query was similar to this one here, but it led me to delve deeper into research and explore a new approach. Essentially, I am attempting to consolidate all my .js and .coffee files within a single gulp.src() object and execute relevant tasks ba ...