firestore-export-import
Advanced tools
Comparing version 1.3.6 to 1.4.0
@@ -0,1 +1,2 @@ | ||
import { Firestore } from 'firebase-admin/firestore'; | ||
import { IExportOptions } from './helper.js'; | ||
@@ -7,3 +8,3 @@ /** | ||
*/ | ||
export declare const getAllCollectionsService: <T>(collectionNameArray: string[], options?: IExportOptions) => Promise<T>; | ||
export declare const getAllCollectionsService: <T>(db: Firestore, collectionNameArray: string[], options?: IExportOptions) => Promise<T>; | ||
/** | ||
@@ -16,3 +17,3 @@ * Backup data from a specific firestore document specified by db.collection(collectionName).doc(documentName) | ||
*/ | ||
export declare const backupFromDocService: <T>(collectionName: string, documentName: string, options?: IExportOptions) => Promise<T>; | ||
export declare const backupFromDocService: <T>(db: Firestore, collectionName: string, documentName: string, options?: IExportOptions) => Promise<T>; | ||
/** | ||
@@ -24,3 +25,3 @@ * backs up document with subcollections for parallelization | ||
*/ | ||
export declare const backUpDocRef: <T>(doc: FirebaseFirestore.QueryDocumentSnapshot, collectionPath: String, options?: IExportOptions) => Promise<T>; | ||
export declare const backUpDocRef: <T>(db: Firestore, doc: FirebaseFirestore.QueryDocumentSnapshot, collectionPath: String, options?: IExportOptions) => Promise<T>; | ||
/** | ||
@@ -32,2 +33,2 @@ * Backup data from firestore | ||
*/ | ||
export declare const backupService: <T>(collectionName: string, options?: IExportOptions) => Promise<T>; | ||
export declare const backupService: <T>(db: Firestore, collectionName: string, options?: IExportOptions) => Promise<T>; |
@@ -15,7 +15,7 @@ "use strict";var __assign=(this&&this.__assign)||function(){__assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p)) | ||
if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true};}};var __spreadArray=(this&&this.__spreadArray)||function(to,from,pack){if(pack||arguments.length===2)for(var i=0,l=from.length,ar;i<l;i++){if(ar||!(i in from)){if(!ar)ar=Array.prototype.slice.call(from,0,i);ar[i]=from[i];}} | ||
return to.concat(ar||Array.prototype.slice.call(from));};Object.defineProperty(exports,"__esModule",{value:true});exports.backupService=exports.backUpDocRef=exports.backupFromDocService=exports.getAllCollectionsService=void 0;var firestore_1=require("firebase-admin/firestore");var helper_js_1=require("./helper.js");var getAllCollectionsService=function(collectionNameArray,options){return __awaiter(void 0,void 0,void 0,function(){var db,paths,snap,promises,value;return __generator(this,function(_a){switch(_a.label){case 0:db=(0,firestore_1.getFirestore)();paths=collectionNameArray;if(!(paths.length===0))return[3,2];return[4,db.listCollections()];case 1:snap=_a.sent();snap.forEach(function(collection){return paths.push(collection.path);});_a.label=2;case 2:promises=paths.map(function(path){return(0,exports.backupService)(path,options);});return[4,Promise.all(promises)];case 3:value=_a.sent();return[2,Object.assign.apply(Object,__spreadArray([{}],value,false))];}});});};exports.getAllCollectionsService=getAllCollectionsService;var backupFromDocService=function(collectionName,documentName,options){return __awaiter(void 0,void 0,void 0,function(){var db,data,documentRef,document,docs,_i,docs_1,doc,subCollections,_a,_b,refKey,_c,_d,val,_e,subCollections_1,subCol,subColData,error_1;return __generator(this,function(_f){switch(_f.label){case 0:_f.trys.push([0,9,,10]);db=(0,firestore_1.getFirestore)();data={};data[collectionName]={};documentRef=db.collection(collectionName).doc(documentName);return[4,documentRef.get()];case 1:document=_f.sent();docs=[document];_i=0,docs_1=docs;_f.label=2;case 2:if(!(_i<docs_1.length))return[3,8];doc=docs_1[_i];return[4,doc.ref.listCollections()];case 3:subCollections=_f.sent();data[collectionName][doc.id]=doc.data()||{};if(options===null||options===void 0?void 0:options.refs){for(_a=0,_b=options===null||options===void 0?void 0:options.refs;_a<_b.length;_a++){refKey=_b[_a];if(refKey.indexOf('.')>-1){(0,helper_js_1.traverseObjects)(data,function(value){var _a;if(((_a=value.constructor)===null||_a===void 0?void 0:_a.name)!=='DocumentReference'){return null;} | ||
return to.concat(ar||Array.prototype.slice.call(from));};Object.defineProperty(exports,"__esModule",{value:true});exports.backupService=exports.backUpDocRef=exports.backupFromDocService=exports.getAllCollectionsService=void 0;var helper_js_1=require("./helper.js");var getAllCollectionsService=function(db,collectionNameArray,options){return __awaiter(void 0,void 0,void 0,function(){var paths,snap,promises,value;return __generator(this,function(_a){switch(_a.label){case 0:paths=collectionNameArray;if(!(paths.length===0))return[3,2];return[4,db.listCollections()];case 1:snap=_a.sent();snap.forEach(function(collection){return paths.push(collection.path);});_a.label=2;case 2:promises=paths.map(function(path){return(0,exports.backupService)(db,path,options);});return[4,Promise.all(promises)];case 3:value=_a.sent();return[2,Object.assign.apply(Object,__spreadArray([{}],value,false))];}});});};exports.getAllCollectionsService=getAllCollectionsService;var backupFromDocService=function(db,collectionName,documentName,options){return __awaiter(void 0,void 0,void 0,function(){var data,documentRef,document,docs,_i,docs_1,doc,subCollections,_a,_b,refKey,_c,_d,val,_e,subCollections_1,subCol,subColData,error_1;return __generator(this,function(_f){switch(_f.label){case 0:_f.trys.push([0,9,,10]);data={};data[collectionName]={};documentRef=db.collection(collectionName).doc(documentName);return[4,documentRef.get()];case 1:document=_f.sent();docs=[document];_i=0,docs_1=docs;_f.label=2;case 2:if(!(_i<docs_1.length))return[3,8];doc=docs_1[_i];return[4,doc.ref.listCollections()];case 3:subCollections=_f.sent();data[collectionName][doc.id]=doc.data()||{};if(options===null||options===void 0?void 0:options.refs){for(_a=0,_b=options===null||options===void 0?void 0:options.refs;_a<_b.length;_a++){refKey=_b[_a];if(refKey.indexOf('.')>-1){(0,helper_js_1.traverseObjects)(data,function(value){var _a;if(((_a=value.constructor)===null||_a===void 0?void 0:_a.name)!=='DocumentReference'){return null;} | ||
return(0,helper_js_1.getPath)(value);});} | ||
else{if(data[collectionName][doc.id][refKey]){if(Array.isArray(data[collectionName][doc.id][refKey])){for(_c=0,_d=data[collectionName][doc.id][refKey];_c<_d.length;_c++){val=_d[_c];data[collectionName][doc.id][refKey]=(0,helper_js_1.getPath)(val);}} | ||
else if(typeof data[collectionName][doc.id][refKey].path==='string'){data[collectionName][doc.id][refKey]=data[collectionName][doc.id][refKey].path;}}}}} | ||
if(!(subCollections.length>0))return[3,7];data[collectionName][doc.id]['subCollection']={};_e=0,subCollections_1=subCollections;_f.label=4;case 4:if(!(_e<subCollections_1.length))return[3,7];subCol=subCollections_1[_e];return[4,(0,exports.backupService)("".concat(collectionName,"/").concat(documentName,"/").concat(subCol.id),options)];case 5:subColData=_f.sent();data[collectionName][doc.id]['subCollection']=__assign(__assign({},data[collectionName][doc.id]['subCollection']),subColData);_f.label=6;case 6:_e++;return[3,4];case 7:_i++;return[3,2];case 8:return[2,data];case 9:error_1=_f.sent();console.error(error_1);throw new Error(error_1);case 10:return[2];}});});};exports.backupFromDocService=backupFromDocService;var backUpDocRef=function(doc,collectionPath,options){return __awaiter(void 0,void 0,void 0,function(){var subCollections,data,_i,_a,refKey,_b,_c,val,subColOptions,_d,subCollections_2,subCol,subColData,tR;return __generator(this,function(_e){switch(_e.label){case 0:return[4,doc.ref.listCollections()];case 1:subCollections=_e.sent();data=Object.assign({},doc.data());if(options===null||options===void 0?void 0:options.refs){for(_i=0,_a=options===null||options===void 0?void 0:options.refs;_i<_a.length;_i++){refKey=_a[_i];if(refKey.indexOf('.')>-1){(0,helper_js_1.traverseObjects)(data,function(value){var _a;if(((_a=value.constructor)===null||_a===void 0?void 0:_a.name)!=='DocumentReference'){return null;} | ||
if(!(subCollections.length>0))return[3,7];data[collectionName][doc.id]['subCollection']={};_e=0,subCollections_1=subCollections;_f.label=4;case 4:if(!(_e<subCollections_1.length))return[3,7];subCol=subCollections_1[_e];return[4,(0,exports.backupService)(db,"".concat(collectionName,"/").concat(documentName,"/").concat(subCol.id),options)];case 5:subColData=_f.sent();data[collectionName][doc.id]['subCollection']=__assign(__assign({},data[collectionName][doc.id]['subCollection']),subColData);_f.label=6;case 6:_e++;return[3,4];case 7:_i++;return[3,2];case 8:return[2,data];case 9:error_1=_f.sent();console.error(error_1);throw new Error(error_1);case 10:return[2];}});});};exports.backupFromDocService=backupFromDocService;var backUpDocRef=function(db,doc,collectionPath,options){return __awaiter(void 0,void 0,void 0,function(){var subCollections,data,_i,_a,refKey,_b,_c,val,subColOptions,_d,subCollections_2,subCol,subColData,tR;return __generator(this,function(_e){switch(_e.label){case 0:return[4,doc.ref.listCollections()];case 1:subCollections=_e.sent();data=Object.assign({},doc.data());if(options===null||options===void 0?void 0:options.refs){for(_i=0,_a=options===null||options===void 0?void 0:options.refs;_i<_a.length;_i++){refKey=_a[_i];if(refKey.indexOf('.')>-1){(0,helper_js_1.traverseObjects)(data,function(value){var _a;if(((_a=value.constructor)===null||_a===void 0?void 0:_a.name)!=='DocumentReference'){return null;} | ||
return(0,helper_js_1.getPath)(value);});} | ||
@@ -25,2 +25,2 @@ else{if(data[refKey]){if(Array.isArray(data[refKey])){for(_b=0,_c=data[refKey];_b<_c.length;_b++){val=_c[_b];data[refKey]=(0,helper_js_1.getPath)(val);}} | ||
if(!(subCollections.length>0))return[3,5];data['subCollection']={};subColOptions=__assign({},options);if(subColOptions===null||subColOptions===void 0?void 0:subColOptions.queryCollection){delete subColOptions.queryCollection;} | ||
_d=0,subCollections_2=subCollections;_e.label=2;case 2:if(!(_d<subCollections_2.length))return[3,5];subCol=subCollections_2[_d];return[4,(0,exports.backupService)("".concat(collectionPath,"/").concat(doc.id,"/").concat(subCol.id),subColOptions)];case 3:subColData=_e.sent();data['subCollection']=__assign(__assign({},data['subCollection']),subColData);_e.label=4;case 4:_d++;return[3,2];case 5:tR={};tR[doc.id]=data;return[2,tR];}});});};exports.backUpDocRef=backUpDocRef;var backupService=function(collectionName,options){return __awaiter(void 0,void 0,void 0,function(){var db,data_1,collectionRef_1,documents,_a,docs,promises,promiseValues,error_2;return __generator(this,function(_b){switch(_b.label){case 0:_b.trys.push([0,6,,7]);db=(0,firestore_1.getFirestore)();data_1={};data_1[collectionName]={};collectionRef_1=db.collection(collectionName);if(!((options===null||options===void 0?void 0:options.queryCollection)!=null))return[3,2];return[4,options.queryCollection(collectionRef_1)];case 1:_a=_b.sent();return[3,4];case 2:return[4,collectionRef_1.get()];case 3:_a=_b.sent();_b.label=4;case 4:documents=_a;docs=(options===null||options===void 0?void 0:options.docsFromEachCollection)>0?documents.docs.slice(0,options===null||options===void 0?void 0:options.docsFromEachCollection):documents.docs;promises=docs.map(function(doc){return(0,exports.backUpDocRef)(doc,collectionRef_1.path,options);});return[4,Promise.all(promises)];case 5:promiseValues=_b.sent();promiseValues.forEach(function(dataMap){data_1[collectionName]=Object.assign(data_1[collectionName],dataMap);});return[2,data_1];case 6:error_2=_b.sent();console.error(error_2);throw new Error(error_2);case 7:return[2];}});});};exports.backupService=backupService; | ||
_d=0,subCollections_2=subCollections;_e.label=2;case 2:if(!(_d<subCollections_2.length))return[3,5];subCol=subCollections_2[_d];return[4,(0,exports.backupService)(db,"".concat(collectionPath,"/").concat(doc.id,"/").concat(subCol.id),subColOptions)];case 3:subColData=_e.sent();data['subCollection']=__assign(__assign({},data['subCollection']),subColData);_e.label=4;case 4:_d++;return[3,2];case 5:tR={};tR[doc.id]=data;return[2,tR];}});});};exports.backUpDocRef=backUpDocRef;var backupService=function(db,collectionName,options){return __awaiter(void 0,void 0,void 0,function(){var data_1,collectionRef_1,documents,_a,docs,promises,promiseValues,error_2;return __generator(this,function(_b){switch(_b.label){case 0:_b.trys.push([0,6,,7]);data_1={};data_1[collectionName]={};collectionRef_1=db.collection(collectionName);if(!((options===null||options===void 0?void 0:options.queryCollection)!=null))return[3,2];return[4,options.queryCollection(collectionRef_1)];case 1:_a=_b.sent();return[3,4];case 2:return[4,collectionRef_1.get()];case 3:_a=_b.sent();_b.label=4;case 4:documents=_a;docs=(options===null||options===void 0?void 0:options.docsFromEachCollection)>0?documents.docs.slice(0,options===null||options===void 0?void 0:options.docsFromEachCollection):documents.docs;promises=docs.map(function(doc){return(0,exports.backUpDocRef)(db,doc,collectionRef_1.path,options);});return[4,Promise.all(promises)];case 5:promiseValues=_b.sent();promiseValues.forEach(function(dataMap){data_1[collectionName]=Object.assign(data_1[collectionName],dataMap);});return[2,data_1];case 6:error_2=_b.sent();console.error(error_2);throw new Error(error_2);case 7:return[2];}});});};exports.backupService=backupService; |
@@ -0,1 +1,2 @@ | ||
import { Firestore } from 'firebase-admin/firestore'; | ||
import { IImportOptions } from './helper.js'; | ||
@@ -8,5 +9,5 @@ /** | ||
*/ | ||
export declare const restoreService: (fileName: string | Object, options: IImportOptions) => Promise<{ | ||
export declare const restoreService: (db: Firestore, fileName: string | Object, options: IImportOptions) => Promise<{ | ||
status: boolean; | ||
message: string; | ||
}>; |
@@ -12,3 +12,3 @@ "use strict";var __awaiter=(this&&this.__awaiter)||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value);});} | ||
op=body.call(thisArg,_);}catch(e){op=[6,e];y=0;}finally{f=t=0;} | ||
if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true};}};var __importDefault=(this&&this.__importDefault)||function(mod){return(mod&&mod.__esModule)?mod:{"default":mod};};Object.defineProperty(exports,"__esModule",{value:true});exports.restoreService=void 0;var firestore_1=require("firebase-admin/firestore");var fs_1=__importDefault(require("fs"));var uuid_1=require("uuid");var helper_js_1=require("./helper.js");var restoreService=function(fileName,options){var db=(0,firestore_1.getFirestore)();return new Promise(function(resolve,reject){if(typeof fileName==='object'){var dataObj=fileName;updateCollection(db,dataObj,options).then(function(){resolve({status:true,message:'Collection successfully imported!',});}).catch(function(error){reject({status:false,message:error.message});});} | ||
if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true};}};var __importDefault=(this&&this.__importDefault)||function(mod){return(mod&&mod.__esModule)?mod:{"default":mod};};Object.defineProperty(exports,"__esModule",{value:true});exports.restoreService=void 0;var fs_1=__importDefault(require("fs"));var uuid_1=require("uuid");var helper_js_1=require("./helper.js");var restoreService=function(db,fileName,options){return new Promise(function(resolve,reject){if(typeof fileName==='object'){var dataObj=fileName;updateCollection(db,dataObj,options).then(function(){resolve({status:true,message:'Collection successfully imported!',});}).catch(function(error){reject({status:false,message:error.message});});} | ||
else{fs_1.default.readFile(fileName,'utf8',function(err,data){if(err){console.log(err);reject({status:false,message:err.message});} | ||
@@ -15,0 +15,0 @@ var dataObj=JSON.parse(data);updateCollection(db,dataObj,options).then(function(){resolve({status:true,message:'Collection successfully imported!',});}).catch(function(error){reject({status:false,message:error.message});});});}});};exports.restoreService=restoreService;var updateCollection=function(db,dataObj,options){if(options===void 0){options={};} |
@@ -0,1 +1,3 @@ | ||
import { AppOptions } from 'firebase-admin/app'; | ||
import { Firestore } from 'firebase-admin/firestore'; | ||
import { IExportOptions, IImportOptions } from './helper.js'; | ||
@@ -11,4 +13,6 @@ interface IInitializeAppOptions { | ||
* @param {IInitializeAppOptions} options | ||
* | ||
* @return Firestore | ||
*/ | ||
export declare const initializeFirebaseApp: (serviceAccount: object, name?: string, options?: IInitializeAppOptions) => boolean; | ||
export declare const initializeFirebaseApp: (serviceAccount?: AppOptions | null, name?: string, options?: IInitializeAppOptions) => Firestore; | ||
/** | ||
@@ -21,3 +25,3 @@ * Backup data from firestore | ||
*/ | ||
export declare const backup: <T>(collectionName: string, options?: IExportOptions) => Promise<T>; | ||
export declare const backup: <T>(db: Firestore, collectionName: string, options?: IExportOptions) => Promise<T>; | ||
/** | ||
@@ -31,3 +35,3 @@ * Backup data from a specific firestore document specified by db.collection(collectionName).doc(documentName) | ||
*/ | ||
export declare const backupFromDoc: <T>(collectionName: string, documentName: string, options?: IExportOptions) => Promise<T>; | ||
export declare const backupFromDoc: <T>(db: Firestore, collectionName: string, documentName: string, options?: IExportOptions) => Promise<T>; | ||
/** | ||
@@ -38,3 +42,3 @@ * Restore data to firestore | ||
*/ | ||
export declare const restore: (fileName: string | Object, options?: IImportOptions) => Promise<{ | ||
export declare const restore: (db: Firestore, fileName: string | Object, options?: IImportOptions) => Promise<{ | ||
status: boolean; | ||
@@ -48,3 +52,3 @@ message: string; | ||
*/ | ||
export declare const backups: <T>(collectionNameArray?: Array<string>, options?: IExportOptions) => Promise<T>; | ||
export declare const backups: <T>(db: Firestore, collectionNameArray?: Array<string>, options?: IExportOptions) => Promise<T>; | ||
export {}; |
@@ -5,5 +5,8 @@ "use strict";var __assign=(this&&this.__assign)||function(){__assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p)) | ||
if(options===void 0){options={};} | ||
var apps=(0,app_1.getApps)();if(apps.length===0||(apps.length>0&&apps[0].name!==name)){(0,app_1.initializeApp)({credential:(0,app_1.cert)(serviceAccount),databaseURL:serviceAccount['databaseURL'],},name);(0,firestore_1.getFirestore)().settings(__assign({timestampsInSnapshots:true},options.firestore));} | ||
return true;};exports.initializeFirebaseApp=initializeFirebaseApp;var backup=function(collectionName,options){return(0,export_js_1.backupService)(collectionName,options);};exports.backup=backup;var backupFromDoc=function(collectionName,documentName,options){return(0,export_js_1.backupFromDocService)(collectionName,documentName,options);};exports.backupFromDoc=backupFromDoc;var restore=function(fileName,options){if(options===void 0){options={};} | ||
return(0,import_js_1.restoreService)(fileName,options);};exports.restore=restore;var backups=function(collectionNameArray,options){if(collectionNameArray===void 0){collectionNameArray=[];} | ||
return(0,export_js_1.getAllCollectionsService)(collectionNameArray,options);};exports.backups=backups; | ||
var apps=(0,app_1.getApps)();if(apps.length===0||(apps.length>0&&apps[0].name!==name)){var app=void 0;if(serviceAccount){app=(0,app_1.initializeApp)({credential:(0,app_1.cert)(serviceAccount),databaseURL:serviceAccount['databaseURL'],},name);} | ||
else{app=(0,app_1.initializeApp)(undefined,name);} | ||
var firestore=(0,firestore_1.getFirestore)(app);firestore.settings(__assign({timestampsInSnapshots:true},options.firestore));} | ||
else{console.warn("Firebase App exist. Return default firestore instance");} | ||
return(0,firestore_1.getFirestore)(apps[0]);};exports.initializeFirebaseApp=initializeFirebaseApp;var backup=function(db,collectionName,options){return(0,export_js_1.backupService)(db,collectionName,options);};exports.backup=backup;var backupFromDoc=function(db,collectionName,documentName,options){return(0,export_js_1.backupFromDocService)(db,collectionName,documentName,options);};exports.backupFromDoc=backupFromDoc;var restore=function(db,fileName,options){if(options===void 0){options={};} | ||
return(0,import_js_1.restoreService)(db,fileName,options);};exports.restore=restore;var backups=function(db,collectionNameArray,options){if(collectionNameArray===void 0){collectionNameArray=[];} | ||
return(0,export_js_1.getAllCollectionsService)(db,collectionNameArray,options);};exports.backups=backups; |
{ | ||
"name": "firestore-export-import", | ||
"version": "1.3.6", | ||
"version": "1.4.0", | ||
"description": "NPM package for backup and restore Firebase Firestore", | ||
@@ -37,6 +37,6 @@ "main": "./dist/index.js", | ||
"devDependencies": { | ||
"@types/chai": "^4.3.4", | ||
"@types/chai": "^4.3.5", | ||
"@types/expect": "^24.3.0", | ||
"@types/mocha": "^10.0.1", | ||
"@types/node": "^18.15.11", | ||
"@types/node": "^20.4.5", | ||
"chai": "^4.3.7", | ||
@@ -49,7 +49,7 @@ "jsmin": "^1.0.1", | ||
"ts-node": "^10.9.1", | ||
"typescript": "^5.0.4" | ||
"typescript": "^5.1.6" | ||
}, | ||
"dependencies": { | ||
"firebase-admin": "^11.6.0", | ||
"google-gax": "^3.6.0", | ||
"firebase-admin": "^11.10.1", | ||
"google-gax": "^4.0.3", | ||
"uuid": "^9.0.0" | ||
@@ -56,0 +56,0 @@ }, |
@@ -50,7 +50,7 @@ # firestore-export-import | ||
const appName = '[DEFAULT]' | ||
initializeFirebaseApp(serviceAccount, appName, options) | ||
const firestore = initializeFirebaseApp(serviceAccount, appName, options) | ||
// the appName & options are OPTIONAL | ||
// you can initalize the app without them | ||
// initializeFirebaseApp(serviceAccount) | ||
// you can initialize the app without them | ||
// const firestore = initializeFirebaseApp(serviceAccount) | ||
``` | ||
@@ -78,3 +78,3 @@ | ||
// Start exporting your data | ||
backup('collection-name', options).then((data) => | ||
backup(firestore, 'collection-name', options).then((data) => | ||
console.log(JSON.stringify(data)) | ||
@@ -90,3 +90,3 @@ ) | ||
// you can pass options as a third option - optional | ||
backupFromDoc('collection-name', 'document-id').then((data) => | ||
backupFromDoc(firestore, 'collection-name', 'document-id').then((data) => | ||
console.log(JSON.stringify(data)) | ||
@@ -109,3 +109,3 @@ ) | ||
backups(['collectionName1', 'collectionName2']) // Array of collection's name is OPTIONAL | ||
backups(firestore, ['collectionName1', 'collectionName2']) // Array of collection's name is OPTIONAL | ||
.then((collections) => { | ||
@@ -125,3 +125,3 @@ // You can do whatever you want with collections | ||
const users = await backup('users', { | ||
const users = await backup(firestore, 'users', { | ||
queryCollection: queryByName, | ||
@@ -195,7 +195,7 @@ }) | ||
const appName = '[DEFAULT]' | ||
initializeFirebaseApp(serviceAccount, databaseURL, appName) | ||
const firestore = initializeFirebaseApp(serviceAccount, databaseURL, appName) | ||
// Start importing your data | ||
// The array of date, location and reference fields are optional | ||
restore('your-file-path.json', { | ||
restore(firestore, 'your-file-path.json', { | ||
dates: ['date1', 'date1.date2', 'date1.date2.date3'], | ||
@@ -213,3 +213,3 @@ geos: ['location', 'locations'], | ||
const backupData = await request('JSON-URL'); | ||
const status = await restore(JSON.parse(backupData), { | ||
const status = await restore(firestore, JSON.parse(backupData), { | ||
dates: ['date'], | ||
@@ -220,3 +220,3 @@ geos: ['location'] | ||
The JSON is formated as below. The collection name is **test**. **first-key** and **second-key** are document ids. | ||
The JSON is formatted as below. The collection name is **test**. **first-key** and **second-key** are document ids. | ||
@@ -223,0 +223,0 @@ ```json |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
SPDX disjunction
LicenseSPDX disjunction for an artifact's license information
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
Mixed license
License(Experimental) Package contains multiple licenses.
Found 1 instance in 1 package
SPDX disjunction
LicenseSPDX disjunction for an artifact's license information
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
53195
241
2
+ Added@grpc/grpc-js@1.10.10(transitive)
+ Added@js-sdsl/ordered-map@4.4.2(transitive)
+ Added@types/caseless@0.12.5(transitive)
+ Added@types/request@2.48.12(transitive)
+ Added@types/tough-cookie@4.0.5(transitive)
+ Addedasynckit@0.4.0(transitive)
+ Addedcombined-stream@1.0.8(transitive)
+ Addeddelayed-stream@1.0.0(transitive)
+ Addedform-data@2.5.1(transitive)
+ Addedgaxios@6.7.0(transitive)
+ Addedgcp-metadata@6.1.0(transitive)
+ Addedgoogle-auth-library@9.11.0(transitive)
+ Addedgoogle-gax@4.3.7(transitive)
+ Addedgtoken@7.1.0(transitive)
+ Addedhttps-proxy-agent@7.0.5(transitive)
+ Addedproto3-json-serializer@2.0.2(transitive)
+ Addedretry-request@7.0.2(transitive)
+ Addedteeny-request@9.0.0(transitive)
+ Addeduuid@10.0.0(transitive)
Updatedfirebase-admin@^11.10.1
Updatedgoogle-gax@^4.0.3