Can't access/modify Firebase Billing Account - firebase

I've set up a firebase project not to long ago and linked it with a Google Cloud organization. I'm now trying to get the receipts for the monthly charges and I can't figure the hell out where to find them.
The Firebase Console lets me know that I'm not an "Billing Admin" for the associated project... but I also can't figure out who is
As per the image's suggestion, I went into the GCP console to find the billing account.
There seems to be one called "Firebase Payment" (after all I'm paying) but whenever I try to access/modify the account I'm presented with a message saying that I have no access. I tried with all users in my organization and not a single one has access.
Has anyone ever run into this problem before?

It seems that when you create a Firebase project (with Blaze plan) and link it to an GCP org later you'll get the Firebase Payment billing account which can't be modified. To solve that problem for good, do the following
Open the GCP dashboard and create a new billing account
Once thats done, search for Billing Accounts and switch to the My Projects tab
Click Change billing and assign the newly creataed Billing Account

Errors regarding "permissions" have to do with the role we have assigned in that particular project. If you have a role assigned in a particular protect, the access does not migrate to another project. Each project has its own set of rules and they are controlled by the owner of the project. Here is a list of the billing roles and what each role does:
Billing account Administrator - The Billing Account Administrator role grants the IT department the permissions to associate projects with billing accounts, turn off billing for the projects, and view the credit card information for the accounts that they resell to their customers.
It does not give them permissions to view the contents of the projects.
Billing Account User - The Billing Account User role gives the service account the permissions to enable billing (associate projects with the organization's billing account for all projects in the organization) and thereby permit the service account to enable APIs that require billing to be enabled.
Billing Account Viewer - The Billing Account Viewer role allows the developers to view the expenses for a billing account.
Here is a google document that provides a more detailed explanation about the different roles for billing.
The owner of the project needs to provide you with the correct role in IAM in order for you to have access to the information you are requesting.
You can also access a billing report using the following, but make sure you have the access billing.accounts.getSpendingInformationif you want such feature

Related

No Azure subscriptions discovered to provision app resources to

I'm using the VSC Teams Toolkit. But when I sign in to my Azure account to provision my files, it says "No subscriptions discovered" as shown below:
Which subscription should I get to proceed with provisioning the files?
As the information explained, your logged-in Azure account doesn't seem to have associated Azure subscription.
You can login to your Azure portal, and under subscriptions, please check whether you have accessible subscription.
I had the same issue. You really need to go to portal.azure.com -> Subscriptions and have at least 1 subscription listed in the table below.
If no subscription is available, create new one - Pay as you go.
Then, in VS Code - sign out, sign in and subscription will be available
If vscode is complaining about not have an active subscription in the Teams Toolkit extension, for one make sure the tenant id is added to vsocde. See here enter link description here and here enter link description here

GCP billing account for customer

I am creating a website for a customer using firebase.
I want the customer to enter his / her credit card details and manage payments associated with that project.
How do I give access to the customer?
There is a project billing manager profile that associates billing to a project. But that seems to be different than my current use case.
Is my use case even possible? Or should I ask the customer to create a new gcp account altogether and give me permission to deploy the project in it?
What is the recommended way of setting up billing in a safe manner
If the customer going to manage the payments, in this case the recommended way is,
Creating a new GCP account for the customer, if the customer don't have an account.
Create a Google payments profile, if the customer don't have any.
Create a new billing account and choose the respective payment profile or you get a provision to create a payment profile while creating the billing account, which by
default comes with Billing Account Administrator role.
Finally, link the project to the billing account.
As the billing administrator(customer), he can add other members to the billing resource with roles such as Billing Account User, Billing account viewer, etc .. depends on the requirement.
For example, the member who got assigned as Billing Account User, can link the projects to the billing account managed by the customer, but won't able to update the billing account.
By doing above, the billing part will be restricted from others.
Additional Info:
Even the customer owns the billing account, it doesn't mean he can access all the projects linked to his billing account. He can access only the projects that he created and got the respective project access.
In other end, the user won't be able to update the billing account of the customer and also the user won't be able to see other projects attached to the customer billing account, apart from the projects he manages.

How do I link the billing account to project in google cloud

How do i link the billing account to my project on google cloud?
I have enabled the billing but unable to open the JS file and getting some errors like "You must enable the billing on google clouds projects".
Please help me out in fixing this error!!
Thanks!!
Go to the Google Cloud Platform Console.
Click the "hamburger" menu item top left.
Select Manage billing accounts.
You will see a list of billing accounts and the number of projects assigned.
The My projects tab will show you a list of your projects and the associated billing account.
To assign a billing account to a project:
Go to IAM & admin.
Select Manage resources.
To the RIGHT of each project is an ellipsis menu (three vertical dots). Click and select billing.
If you just enabled your billing account, wait. The approval is not instant. If it has been an hour or so, go to your billing account and look for errors regarding your payment being declined, invalid credit card etc.
Just creating a billing account does not enable a project. You must assign a billing account to a project. The menus above provide these features.
I created a videolab with a collection of videos on Google Cloud Billing. The following link is a video to show you how to create and attach a billing account. There are many more videos in this collection.
Create and attach a billing account
Updated gcloud command - Alpha has now become beta
gcloud beta billing projects link Project-ID --billing-account=xxxxxx-yyyyyy-xxxxxx
To update the projects billing account info programmatically one could use google-cloud's billing client library. Below is the sample using ruby client,
require "google/cloud/billing"
billing_account_name = ""
project_id = ""
billing_manager = Google::Cloud::Billing.cloud_billing_service
billing_manager.update_project_billing_info name: "projects/#{project_id}",
project_billing_info: {
billing_account_name: "billingAccounts/#{billing_account_name}",
billing_enabled: true,
project_id: project_id,
name: "projects/#{project_id}/billingInfo",
}
Refer https://github.com/googleapis/google-cloud-ruby/tree/master/google-cloud-billing for more info on enabling auth and running the script.
Elaborating on #suraj-psu's answer, and using a tip found at https://unix.stackexchange.com/questions/84922/extract-a-part-of-one-line-from-a-file-with-sed, the following should work only under the right circumstances.
You can borrow the information from another project that you know for sure it has an enabled billing account.
gcloud beta billing projects describe KNOWN_BILLING_ENABLED_PROJECT
You copy/paste the result, but you could also save it in a variable as follows,
BILLING_ACCOUNT=$(gcloud beta billing projects describe KNOWN_BILLING_ENABLED_PROJECT | awk '/billingAccountName: /{print $NF}')
And then,
gcloud beta billing projects link YOUR_NEW_PROJECT --billing-account=$BILLING_ACCOUNT

How to add collaborators to a Firebase app?

On the latest version of Firebase (Announced during Google I/O 2016), how do I add other people to my project or app whom I want to collaborate with? I came across IAM roles through Settings > Permissions. Is this the right way? If I add person there and assign a role, say Editor, will he/she be notified about it through email? Will a request be sent or will they be added directly to that role?
To give people access to your Firebase project, take these steps:
Select your project in the new Firebase Console
In the top left, next to the project name, click the settings/cog wheel icon
Click Users and Permissions
Click Add member
Enter the email address of the user to add and select the appropriate role as per your requirement
Click the second Add member button
The newly added users will get an email with the subject [Firebase] Invitation to join project and an option to Accept Invite in the body. Be certain to let them know that you added them so that they can accept the invite.
UPDATE 6/18/2018 - changes to Cloud Console and Google's functionality, the original solution may no longer work as shared in comments. For a recent project, I was able to add other users and permissions via Firebase console as indicated below.
Old Solution
Originally you had to choose Editor but you do not have to any more. There are new roles added to Google Cloud IAM in the other section, namely the Firebase Rules System role.
If you add a user to a Google Cloud project using IAM and assign them this role, they can access Firebase project by visiting:
https://console.firebase.google.com
The authorized project(s) should appear and they can access, without access to the rest of the Google Cloud project.
In latest version of the console adding is in a bit different.
Go To Your Project -> Project Overview -> Users and Permissions . This will open up new Pop Up.
Now click on the +Add to add the Members.
Now Add Email Id of the member. Now below that choose from the dropdown Project -> Collaborator as shown below and Save. Thats all! You are done.
If you're adding a Project owner, an invite will be sent to the new user. However, no email invites are sent for the Project Editor/Viewer roles.
From Users and Permissions tab, now, at I/O 2019, it was announced a new option to give permissions.
You can now assign to a specific collaborator, access to Analytics, Develop, Quality and Grow, each one with Admin privileges or View privileges.

New PayPal Developer problems

We are trying to test PayPal functionality in a dev environment but it has changed in the last few days and our "dev" login is no longer valid.
It looks like we now have to create sandbox accounts from within an actual registered business account. While this in itself is not a problem (annoying because we have to chase people around to set it up for us), the real problem is that you can't login to sandbox to place a test order without first being logged-in to PayPal Developers with our company's business account.
This is absolutely unacceptable... We, as developers, do not have access to the company's business account.
We also tried adding a user to the business account (with locked-down privileges), but it won't allow us to login to Developers with it.
Can someone please clarify the new process and how we can go about a) setting up sandbox accounts and b) placing test orders via PayPal's sandbox.
You will have to create a live PayPal account in order to log in with your developer account. Once you log in with a PayPal account, you will see an option to import your previous developer account information from the 'application' tab. If the business you are working with does not want to grant you access to log in, you will have to test using your own live account.
Once you have imported your sandbox account information, you should be able to log into any of your test accounts to make test purchases.

Resources