mirror of
https://github.com/zhigang1992/firebase-tools.git
synced 2026-01-12 17:22:36 +08:00
Adds setup:web command.
This commit is contained in:
@@ -43,6 +43,7 @@ Command | Description
|
||||
**logout** | Sign out of the Firebase CLI.
|
||||
**login:ci** | Generate an authentication token for use in non-interactive environments.
|
||||
**list** | Print a list of all of your Firebase projects.
|
||||
**setup:web** | Print out SDK setup information for the Firebase JS SDK.
|
||||
**use** | Set active Firebase project, manage project aliases.
|
||||
**open** | Quickly open a browser to relevant project resources.
|
||||
**init** | Setup a new Firebase project in the current directory. This command will create a `firebase.json` configuration file in your current directory.
|
||||
|
||||
@@ -53,6 +53,10 @@ module.exports = function(client) {
|
||||
client.open = loadCommand('open');
|
||||
client.serve = loadCommand('serve');
|
||||
|
||||
client.setup = {
|
||||
web: loadCommand('setup-web')
|
||||
};
|
||||
|
||||
client.tools = {
|
||||
migrate: loadCommand('tools-migrate')
|
||||
};
|
||||
|
||||
22
commands/setup-web.js
Normal file
22
commands/setup-web.js
Normal file
@@ -0,0 +1,22 @@
|
||||
'use strict';
|
||||
|
||||
var fs = require('fs');
|
||||
var RSVP = require('rsvp');
|
||||
|
||||
var Command = require('../lib/command');
|
||||
var fetchWebSetup = require('../lib/fetchWebSetup');
|
||||
var logger = require('../lib/logger');
|
||||
var requireAccess = require('../lib/requireAccess');
|
||||
var scopes = require('../lib/scopes');
|
||||
|
||||
var JS_TEMPLATE = fs.readFileSync(__dirname + '/../templates/setup/web.js', 'utf8');
|
||||
|
||||
module.exports = new Command('setup:web')
|
||||
.description('display this project\'s setup information for the Firebase JS SDK')
|
||||
.before(requireAccess, [scopes.CLOUD_PLATFORM])
|
||||
.action(function(options) {
|
||||
return fetchWebSetup(options).then(function(config) {
|
||||
logger.info(JS_TEMPLATE.replace('{/*--CONFIG--*/}', JSON.stringify(config, null, 2)));
|
||||
return RSVP.resolve(config);
|
||||
});
|
||||
});
|
||||
@@ -80,10 +80,12 @@ var api = {
|
||||
authOrigin: utils.envOverride('FIREBASE_AUTH_URL', 'https://accounts.google.com'),
|
||||
consoleOrigin: utils.envOverride('FIREBASE_CONSOLE_URL', 'https://console.firebase.google.com'),
|
||||
deployOrigin: utils.envOverride('FIREBASE_DEPLOY_URL', utils.envOverride('FIREBASE_UPLOAD_URL', 'https://deploy.firebase.com')),
|
||||
firedataOrigin: utils.envOverride('FIREBASE_FIREDATA_URL', 'https://mobilesdk-pa.googleapis.com'),
|
||||
functionsOrigin: utils.envOverride('FIREBASE_FUNCTIONS_URL', 'https://cloudfunctions.googleapis.com'),
|
||||
googleOrigin: utils.envOverride('FIREBASE_TOKEN_URL', utils.envOverride('FIREBASE_GOOGLE_URL', 'https://www.googleapis.com')),
|
||||
hostingOrigin: utils.envOverride('FIREBASE_HOSTING_URL', 'https://firebaseapp.com'),
|
||||
realtimeOrigin: utils.envOverride('FIREBASE_REALTIME_URL', 'https://firebaseio.com'),
|
||||
resourceManagerOrigin: utils.envOverride('FIREBASE_RESOURCEMANAGER_URL', 'https://cloudresourcemanager.googleapis.com'),
|
||||
rulesOrigin: utils.envOverride('FIREBASE_RULES_URL', 'https://firebaserules.googleapis.com'),
|
||||
runtimeconfigOrigin: utils.envOverride('FIREBASE_RUNTIMECONFIG_URL', 'https://runtimeconfig.googleapis.com'),
|
||||
|
||||
|
||||
0
lib/fetchSetup.js
Normal file
0
lib/fetchSetup.js
Normal file
19
lib/fetchWebSetup.js
Normal file
19
lib/fetchWebSetup.js
Normal file
@@ -0,0 +1,19 @@
|
||||
'use strict';
|
||||
|
||||
var getProjectId = require('./getProjectId');
|
||||
var api = require('./api');
|
||||
|
||||
module.exports = function(options) {
|
||||
var projectId = getProjectId(options);
|
||||
return api.request('GET', '/v1/projects/' + projectId, {
|
||||
auth: true,
|
||||
origin: api.resourceManagerOrigin
|
||||
}).then(function(response) {
|
||||
return api.request('GET', '/v1/projects/' + response.body.projectNumber + '/clients/_:getWebAppConfig', {
|
||||
auth: true,
|
||||
origin: api.firedataOrigin
|
||||
});
|
||||
}).then(function(response) {
|
||||
return response.body;
|
||||
});
|
||||
};
|
||||
5
templates/setup/web.js
Normal file
5
templates/setup/web.js
Normal file
@@ -0,0 +1,5 @@
|
||||
// Copy and paste this into your JavaScript code to initialize the Firebase SDK.
|
||||
// You will also need to load the Firebase SDK.
|
||||
// See https://firebase.google.com/docs/web/setup for more details.
|
||||
|
||||
firebase.initializeApp({/*--CONFIG--*/});
|
||||
Reference in New Issue
Block a user