Firebase trouble when initializing CLI to deploy a react app - firebase

I keep getting the error below:
? Are you ready to proceed? Yes
? Which Firebase features do you want to set up for this directory? Press Space to select features, then Enter to confirm your choices. Hosting: Configure files for Firebase Hosting and (optionally) set up GitHub Action deploys
=== Project Setup
First, let's associate this project directory with a Firebase project.
You can create multiple project aliases by running firebase use --add,
but for now we'll just set up a default project.
? Please select an option: Use an existing project
Error: Failed to list Firebase projects. See firebase-debug.log for more info.
PS C:\Users\xxxxxlinked-in>
I have tried everything I can find on StackOverflow:
firebase login will log me in.
I have also done the firebase login --reauth one and also just reinstalling it npm install -g firebase-tools.
Its just when I go to use an existing project.
If it helps to know, I keep gettin another error when uing this command firebase projects:list.

Related

Unable to set up Export Collections to BigQuery extension. Unable to uninstall: failed to remove IAM roles from Service Account

I tried installing the Export Collections to BigQuery extension to send firestore collection data to BigQuery. The installation succeeded but could never get the queries to work. I kept getting the error:
Not found: Dataset myproject:firestore_events was not found in location US
I tried uninstalling and reinstalling. I now have two instances of the extension and attempts to uninstall fail with ther error:
failed to remove IAM roles from Service Account for projects/myproject/instances/firestore-bigquery-export
Is there a way to uninstall manually?
Is there a way to install manually?
The following error message means that your FROM statement may not contain the proper query structure - project, database, and table:
Not found: Dataset myproject:firestore_events was not found in location US
For example:
SELECT *
FROM `my-project.my-database.my-table`
Please note the backticks.
Refer to Error: Not found: Dataset my-project-name:domain_public was not found in location US for details about a similar issue.
Now, in regards to the second error message:
failed to remove IAM roles from Service Account for projects/myproject/instances/firestore-bigquery-export
I suspect that after reinstalling and uninstalling one of the extension instances, its service account might already be deleted and thus failing to remove its IAM roles.
The installation of this extension generates a new service account that has the BigQuery Data Editor role to access your project and resources. This role allows the extension to configure and export data into BigQuery.
From documentation:
When you uninstall an extension from your project, Firebase deletes the service account created for that instance of the extension. After this deletion of the service account, the extension cannot run in your project because it no longer has any access rights to your project or data.
I was able to uninstall and reinstall the Export Collections to BigQuery extension to avoid duplicates in my project without any issues.
To answer your last question, I am not aware of any other methods to install/uninstall Firebase extensions other than what is shown in the documentation. You can install the extension using the Firebase Console or the Firebase CLI:
1 - Install the Firebase CLI or update it to the latest version:
npm install -g firebase-tools
2 - Install the extension:
firebase ext:install firestore-bigquery-export --project=projectId_or_alias
Edited
We can take the following steps to troubleshoot error:
failed to remove IAM roles from Service Account for projects
Please make sure that you're the owner of the project that you are installing extensions in.
Refer to this GitHub issue to uninstall the extension using the CLI.
If that didn't help, try disabling and re-enabling the Firebase Extensions API inside the GCP Console.
Please make sure that Firebase Management API is enabled in your project.
If that didn't help, navigate to the IAM Permissions page on the Cloud Console, and find the service account.
Add the Cloud Functions Developer and Firebase Extensions API Service Agent roles.
If those roles not available for some reason, just adding the Project Editor role also works as a catch-all. However, using the catch-all also provides additional permissions to the service accounts.
I had a similar issue when installing a Firebase Extension.
My error was adding an IAM role that did not exist, this not only failed to install the extension, but also then stopped me from uninstalling with the error failed to remove IAM roles from Service Account for.
To fix this issue I edited what I knew was the broken permission to be the correct role and then ran the following...
firebase ext:update ${ext-name} . --project={project-name}.
Alternativley, removing all roles completetly from the configuration and updating will have the same result.
One completed, the uninstallation process will automatically continue and uninstall your extension.

new project not showing up Firebase CLI

Was recently added to a new firebase project via the web interface but it isn't showing up in firebase list. I can see the project in my firebase console. I've tried restarting my terminal, logging out/in, and doing firebase use, but no avail.
Any ideas?
Thanks.
firebase-init first asks which features you wish to use, e.g. database, firestore, storage, etc.
If you choose firestore but have not yet enabled Firestore in your newly created Firebase project via firebase.google.com website, that project will not show up as a project option.
So, before running firebase-cli, enable all the features you want via the website first, ...before chosing those features in step 1 of firebase init.
Once you've enabled Firestore, for example, your project will now show up.
There is now a --project option you can use with firebase init to choose the project.
firebase init --project <projectId>
You can select your project if you know the project id:
firebase use --add
That will select the project, so when you type "firebase init" will not show the select project option but take you to the next step
After 24 hrs, the project finally showed up in my list. Turns out there's just an extremely long delay if you're not the owner of the project.
While following the firebase init steps, use the [don't setup a default project] option.
Then use firebase use --add projectId to add the project.
So recently I changed my password, and was still logged into my firebase account, I did firebase logout and then tried firebase login again, and this time the firebase use --add command worked
In case this helps anyone else: a firebase project is just a firebase-enabled Google Cloud Platform project.
You can create a GCP project but it won't appear in the firebase CLI until you visit console.firebase.google.com and enable firebase for your GCP project of choice.
Then
firebase use --add your_google_cloud_platform_project_id
Should detect your project.
When firebase init asks you to choose a project from the list just check [don't setup a default project] and after the installation you can manually add the project to the .firebaserc file as shown below.
{
"projects": {
"default": "your-project-id"
}
}
You can check the id's of your projects with the command firebase list.
It'll also show the current project.
The below solution worked for me.
Get the Project Id from firebase console. e.g. myproject-2233
On Firebase CLI run below command
$ firebase -P myproject-2233
Next Select the features you want to add e.g. Web Hosting
Next Select "Don't Setup a default project"
Give the public folder name
It worked only after choosing "Don't Setup a default project"

HTTP Error: 401, The entered credentials were incorrect. Firebase Cloud Function

Whenever I use following command in terminal (mac os sierra)
firebase init
below three option will be displayed
❯◯ Database: Deploy Firebase Realtime Database Rules
◯ Functions: Configure and deploy Cloud Functions
◯ Hosting: Configure and deploy Firebase Hosting sites
If I select nothing and press Enter
I will get below message
First, let's associate this project directory with a Firebase project.
You can create multiple project aliases by running firebase use --add,
but for now we'll just set up a default project.
i .firebaserc already has a default project, skipping
i Writing configuration info to firebase.json...
i Writing project information to .firebaserc...
✔ Firebase initialization complete!
But when I select second option
◯ Functions: Configure and deploy Cloud Functions
I will get below message
First, let's associate this project directory with a Firebase project.
You can create multiple project aliases by running firebase use --add,
but for now we'll just set up a default project.
i .firebaserc already has a default project, skipping
=== Functions Setup
A functions directory will be created in your project with a Node.js
package pre-configured. Functions can be deployed with firebase deploy.
Error: HTTP Error: 401, The entered credentials were incorrect.
Amits-MacBook-Pro:firebase-functions Amit$
I have tried with firebase logout and then firebase login again but same error is coming
I have also used firebase list
I got below warning and then I got list of project
Amits-MacBook-Pro:firebase-functions Amit$ firebase list
Warning: advanced compression encodings unavailable without ES6/C++11. Falling back to gzip.
Since long time ago I have used firebase function with another google login, now I am logout from that and started to login with different google login account but unable to do it, if I login with previouse google login still it's not working
I have also check directory where I have used firebase init no files are creating in that directory.
In demo of Firebase function they have shown that some files are created
https://www.youtube.com/watch?v=EvV9Vk9iOCQ&t=308s
Should I uninstall firebase and install it again? if yes, just let me know how to uninstall?
I had the same Firebase Error: "HTTP Error: 401, The entered credentials were incorrect" when I was authenticated with the wrong Google account.
I did firebase login --reauth and logged in with the right account.
After that, the project was successfully deployed.

Firebase: error: unknown option `--public'

I am using this tutorial, after I successfully login to Firebase, I need to set the root dir. So as the tutorial instructs, I run:
~/firebase-webchat$ firebase init --public .
However, I get the following error:
error: unknown option `--public'
Does anyone know what command I should be using?
Thanks
I`ve having the same issue, but i finally get a answer for me.
First of all, do you will net logout from your firbase cli login, so lets run:
$ firebase logout
So thats should logout you.
So next lets login again, but at this time, we will need accept the follow question from firebase cli.
$ firebase login --no-localhost
? Allow Firebase to collect anonymous CLI usage information? Yes
If the ask from firebase not appears, just run
$ firebase login --reauth --no-localhost
So before continue, lets make some improvement on our directory structure, put all your files inside directory called "public"
So to the GRAND FINALE, just run
$ firebase init
I hope help you.
Don't use firebase init --public . -> you're probably following the same tutorial I was. Just use firebase init. You'll get asked to set your public directory later.
=== Hosting Setup
Your public directory is the folder (relative to your project directory) that
will contain Hosting assets to be uploaded with firebase deploy. If you
have a build process for your assets, use your build's output directory.
? What do you want to use as your public directory? .
Hope that helped.
After updating Node JS, i was able to deploy the project.
You can try the same by updating Node JS:
sudo npm install npm#latest -g
Not sure but after updating the node.js, i was able to select project from terminal and able to deploy the project using this commands:
firebase deploy
You can set project from terminal too.
firebase deploy -project your-project-id

"Error: Permission denied" when running firebase init and choosing database

So I’m testing out the CLI today and firebase init with db/hosting selected, and choosing to create a new project, always says Error: Permission denied..
sudo firebase init didn’t help.
firebase-tools version 3.0.3 on OS X 10.11.5.
firebase init
You're about to initialize a Firebase project in this directory:
/Users/splaktar/Git/tmp
Before we get started, keep in mind:
* You are initializing in an existing Firebase project directory
? What Firebase CLI features do you want to setup for this folder? Database: Deploy Firebase Realtime Database Rules
=== Project Setup
First, let's associate this project directory with a Firebase project.
You can create multiple project aliases by running firebase use --add,
but for now we'll just set up a default project.
? What Firebase project do you want to associate as default? [don't setup a default project]
=== Database Setup
Firebase Realtime Database Rules allow you to define how your data should be
structured and when your data can be read from and written to.
? What file should be used for Database Rules? database.rules.json
Error: Permission denied.
I've tried the answers here but they did not help. Is this just a bug in the firebase-tools?
I have the same issue and this is how I fixed it.
run firebase init
Deselect ❯◯ Database: Deploy Firebase Realtime Database Rules
Go through other steps to setup the initial app, selecting the default for each should work just fine.
run firebase serve
Hope that helps.
Sometimes it could happen when .firebaserc file exists.
Remove .firebaserc file and reattempt firebase init.
I was with the same problem, but I was not accessing the right account.
After accessed the right account, I created a new project and run "firebase list" (before this not happened) and my new project was there.
This solved my problem.
You need to have Owner or Editor IAM permission on the GCP project to use firebase init command.
The firebase init command initializes/enables the project to use Cloud Functions/Hosting etc for Firebase. Owners/Editors have higher permissions that allow APIs to be enabled etc.
it is a first-time task when you starting the development, and then init command can be avoided if you have set up your cloud functions code in VCS for multiple developers or you.
i.e, Usually after writing code, you will replicate the project to other developers, who will then also write code and use firebase use yourprojectid further.

Resources