Guide on updating a value in a Firestore document using Firebase

I am working on updating a specific portion of a document in my Firebase collections structure, specifically the phonebook(map) section.

https://i.sstatic.net/UmHot.png

When attempting to modify the document, I encountered an error saying

Invalid document reference. Document references must have an even number of segments
. As someone new to Firebase, I believe there is a fundamental concept that I may be missing here.

insertPhonebookEntry(entry: any) {
  if (entry.id) {
    this.db.doc(entry.id).set({
    PhoneBook: {
      Name: entry.name,
      PhoneNumber: entry.phonenumber
    }
  });
}

Answer №1

Without knowing exactly what entry.id represents in your scenario, my assumption is that it serves as the arbitrary ID given to the document by Firestore which you are attempting to retrieve. However, this alone does not contain enough detail for a successful query. To accurately fetch the document, you must specify the collection name as well to establish a complete path:

this.db.collection('PhonebookEntries').doc(entry.id).set(...)

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

Utilizing a Typescript class interface does not maintain the original method types

Struggling to define a Typescript interface and implement it in a class. The issue lies in the method signatures of the interface not being applied to the class as expected. Below is a simplified example: export interface Foo { bar(value: string): voi ...

Perplexed by the persistent failure of this Jasmine test accompanied by a vexing "timer in queue" error

I'm attempting to test a function that uses RxJS to broadcast long press events to subscribers. Below is the implementation of the function: export function watchForLongPress(target: HTMLElement) { let timer: number; const notifier = new Subject& ...

What is the best way to confirm that a certain element is not present on the page using playwright?

My current challenge involves testing a website that features a logo, and I need to ensure that the logo does not display on specific pages. I have been exploring the Playwright assertions documentation for guidance on how to assert that an element does N ...

What is the proper way to utilize RxJS to append a new property to every object within an array that is returned as an Observable?

I'm not very familiar with RxJS and I have a question. In an Angular service class, there is a method that retrieves data from Firebase Firestore database: async getAllEmployees() { return <Observable<User[]>> this.firestore.collectio ...

Utilizing .js file alongside declaration files .d.ts in Angular: A guide

I am facing an issue with my Angular 7 app where I need to include some typed JS constants from outside of the project. These constants are essential for the AngularJS app and need to be kept in a separate js file. I have defined a new path in the tsconfig ...

What is the best method to obtain access to the controls of an item within FormArray?

My goal is to assign an invalid class to the parent div of each input based on its validity status. In the form, I can control the input fields like this: <div class="form-group focus" [ngClass]="!recipeForm.controls.name.valid ? ...

Using TypeScript, you can pass an object property name as a function argument while ensuring the type is

How can I define a type in a function argument that corresponds to one of the object properties with the same type? For instance, if I have an object: type Article = { name: string; quantity: number; priceNet: number; priceGross: number; }; and I ...

Issue encountered while attempting to download a file using DRF with Angular integration

My current project involves using DRF and Angular. I have successfully implemented a file download feature on localhost with the following code: @action(methods=['get'], detail=True) def download(self, *args, **kwargs): instance = self.get_o ...

The alignment of the first and second steps in Intro.js and Intro.js-react is off

There seems to be an issue here. Upon reloading, the initial step and pop-up appear in the upper left corner instead of the center, which is not what I anticipated based on the Intro.js official documentation. https://i.stack.imgur.com/ICiGt.png Further ...

Are Ternary operators and template literals in Angular2+ causing conflicts when used in tandem?

In my Angular template, I currently have a simple setup that uses string concatenation within interpolation. It looks like this: <h4>{{ myVar.property ? myVar.property + ' IS NOT NULL' : '' }}</h4> What I want to do is swit ...

Two lines in ChartJS with distinct fill gradients for each

I am facing an issue with ChartJS version 2.6 in my Ionic 3/Angular 4 app. I have set up a line chart config with 2 datasets, but I am struggling to apply individual fill gradients to each line. What I am aiming for is something like this: https://i.stac ...

Discover every possible path combination

Looking to flatten an array of 1D arrays and simple elements, reporting all combinations until reaching a leaf "node." For example: // Given input array with single elements or 1D arrays: let input = [1, 2, [3, 4], [5, 6]]; The unfolding process splits pa ...

I am facing difficulties in including a new component using Angular CLI within an ASP.NET Core Single Page Application

Looking to incorporate a new component into my asp.net core 2.0 SPAs using angular 4 and angular cli. Here are the versions I'm working with: @angular/cli: 1.4.2 node: 8.4.0 os: Linux x64 Encountered an error when running ng g c vehicle-form on a ...

Error: The FactoryMethod.render() function requires a valid React element to be returned, or null

An error has occurred: Error: FactoryMethod.render(): A valid React element (or null) must be returned. You may have returned undefined, an array, or some other invalid object. at invariant (react-dom.js:17896) Despite everything being fine during co ...

Using the Markdown attribute in this context prevents the translate pipe from translating the string

I have a paragraph within an Angular component that includes a markdown attribute. Occasionally, the markdown is causing the translation pipe to not translate the title.description string: <p class="someClass" markdown>{{tile.description | ...

Efficiently finding a group of substrings within a JavaScript string

I am currently working on a method to efficiently search for specific substrings within a given string. Here is my current implementation: const apple = "apple" const banana = "banana" const chickoo = "chickoo" const dates = & ...

What is the best way to create a TypeScript interface or type definition for my constant variable?

I'm facing challenges in defining an interface or type for my dataset, and encountering some errors. Here is the incorrect interfaces and code that I'm using: interface IVehicle { [key: number]: { model: string, year: number }; } interface IV ...

Utilizing Min and Max Validation in Angular 2 Template-Driven Forms

I attempted to incorporate min validation in a template form, but unfortunately it did not function as expected. Could someone provide guidance on how to properly use it in a template form? Thank you in advance for your assistance. <input type= ...

Creating a consolidated System.config mapping for @angular modules using a single .js file

Currently in the process of developing an Angular 2 application, with the specific requirement to consolidate all resulting Javascript files into a single .js file called output.js. Now, the challenge is to incorporate map configuration within System.conf ...

In order to incorporate Bootstrap with Angular2, I had to execute a specific command

For incorporating bootstrap with angular2, I executed the following command: $ npm install --save @ng-bootstrap/ng-bootstrap The output displayed: <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="40212e27352c2132726d313529232 ...