There is no valid injection token found for the parameter 'functions' in the class 'TodosComponent'

While working in my code, I decided to use 'firebase' instead of '@angular/fire'. However, I encountered an issue that displayed the following error message:

No suitable injection token for parameter 'functions' of class 'TodosComponent'
.

The problematic section lies within todos.component.ts

import { Component, OnDestroy, OnInit } from '@angular/core';
import { TodosService } from '../todos.service';
import { Todo } from './Todo';
import * as functions from 'firebase/functions';

declare var StripeCheckout: StripeCheckoutStatic;

@Component({
  selector: 'app-todos',
  templateUrl: './todos.component.html',
  styleUrls: ['./todos.component.scss']
})
export class TodosComponent implements OnInit, OnDestroy {

  todos!: Todo[];
  localItem: string | null;
  completedTodos: number = 0;
  date: string = new Date().toUTCString();

  constructor(private functions: functions.Functions) {
      ..........
  }

  ......

}

I am struggling with the line of code

private functions: functions.Functions
.

Answer №1

Since you have imported directly from 'firebase/functions', there is no need to inject it in the constructor.

You can simply use the functions directly.

You should remove

private functions: functions.Functions
from the constructor.

Just use the functions directly without using this.functions.

For instance,

functions.firestore.document('/messages/{documentId}')

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

Can you guide me on how to record a value in Pulumi?

According to Pulumi's guidance on inputs and outputs, I am trying to use console.log() to output a string value. console.log( `>>> masterUsername`, rdsCluster.masterUsername.apply((v) => `swag${v}swag`) ); This code snippet returns: & ...

The "angular2-image-upload" npm package encountering a CORS issue

Using the angular2-image-upload library for uploading files has been a smooth process until recently. After upgrading from version 0.6.6 to 1.0.0-rc.1 to access new features in future, I encountered issues with image uploads. The errors I faced were: Tr ...

"Angular Google Maps module working perfectly on local environment but failing to render on live production site

My little application utilizes the official Angular Google Maps module. While it runs smoothly in my local setup, it simply displays a gray window in production. Upon inspecting the code, I can see that the map, marker, and info window are present, but not ...

One way to declare i18next specifically in React's App.tsx file is by following these

In my React App.tsx file, I am looking for a way to declare const { t } = useTranslation() only once. After that, I want to be able to use { t(trans.things) } in my components without having to declare const { t } = useTranslation() again each time. Is t ...

Construct an outdated angular project from scratch

I'm facing an issue with an old Angular project that I'm trying to build. After pulling down the code, running npm install @angular/<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="fc9f9095bccdd2cbd2c8">[email p ...

npm unable to locate a JavaScript file

Currently, I am developing an Angular 2 application that utilizes the ng2-slugify package. However, I have encountered an issue where it cannot locate one of the required slugify files, specifically "charmaps.js", even though it is stored in the same direc ...

What steps should I take in order for MsalGuard to recognize and utilize my specific client ID?

I have been working on setting up my Angular app to utilize @azure/msal-angular. The MsalModule has been configured in the following manner: import { NgModule } from "@angular/core"; import { MsalModule, MsalInterceptor } from "@azure/msal-angular"; impor ...

Typescript Regular Expression Issue: filter function is not returning any matches

Currently, I am developing an Ecommerce API and working on a class specifically for search queries. My approach involves using regex and typescript with node.js. Although I have based my project on a JavaScript node project, I am encountering an issue wher ...

Leverage the component's recursive capabilities to build a tree structure from within

Is it feasible to use a component within itself? If so, where can I find more information on this? I am facing the following scenario: I have a list of main items, each main item has a subitem (which looks like the main item), and each subitem can have i ...

Unit testing the error function within the subscribe method in Angular

I've been working on a unit test for the subscribe call, but I'm struggling to cover the error handling aspect of the subscribe method. The handleError function deals with statusCode=403 errors and other status codes. Any assistance would be grea ...

Should I return X in async functions, or should I return "Promise.Resolve(X)"?

I've always found this to be a tricky concept to fully grasp. Let's delve into async functions in Typescript. Which implementation is accurate? async function asyncFunctionOne(string1: string, string2: string, string3: string) { var returnOb ...

How to refresh a page manually in Angular 2

How can I have a page in Angular reload only once when a user visits it? This is my attempt: In the homepage component, I added the following code: export class HomepageComponent implements OnInit { constructor() { } ngOnInit() { location.relo ...

Troubleshooting TypeScript errors in Cassini with Google Chrome

While troubleshooting a .NET 4.6.1 web application with Cassini in Visual Studio 2015 version 14, update 3, I encountered an error on a page that utilizes TypeScript: Refused to execute script from 'http://localhost:53049/Scripts/app.ts' because ...

What is the process for sending a post request in Ionic 2 to a Node server running on localhost?

When working with Ionic, I utilized a service provider to access HTTP resources. The Service.ts file looks something like this. Here, data is represented as a JSON object. import { Injectable } from '@angular/core'; import { Http, Headers } fro ...

Establish a connection between two ionic and angular applications using a node server

Currently, I am managing two Ionic applications that both interact with the same API hosted on a node server. My goal is to enable one app to send a post request and have the other app receive and utilize the information from that request. I was consider ...

There seems to be an issue with the data not reaching the backend

When I submit an HTML form in my application, I am able to see the submitted data in the console before sending the HTTP request from the Angular front end. However, the data is not reaching the backend in NodeJS. Strangely, the code works fine when I su ...

The inner workings of Angular 2: uncovering what occurs once we navigate to http://localhost:4200 on our browser

Could anyone provide a detailed explanation of the startup process for an Angular2 project? For example, after creating a sample project using Angular CLI: Run 'ng new my-test-app' Navigate to 'cd my-test-app' Start the server with & ...

The dimensions of the d3 div remain constant despite any modifications to its attributes

In my angular application, I am trying to customize the width and height of div elements in d3 when I select a legend. Strangely, I am able to adjust the width and height of the svg element without any issues. Here is the issue illustrated: Below is the c ...

What is the best way to access dynamic URL parameters in the Next.js 13 app router from a nested server-side component?

This query pertains to the Server-Side components in Next.js 13 app router: I have a good grasp on how the slug parameter is passed to the default function in app/blog/[slug]/page.tsx: export default function Page({ params }: { params: { slug: string } }) ...

Guide on importing npm packages without TypeScript definitions while still enabling IDE to provide intelligent code completion features

I am currently utilizing an npm package that lacks type definitions for TypeScript. Specifically, I'm working with the react-google-maps library. Following their recommended approach, I have imported the following components from the package: import ...