Files
Introduction¶
Save JSON data, using firebase-firestore.
Each owner has several files, each file contains header and content indexed by fileID.
- Author: Rex
Usage¶
Install plugin¶
Load minify file¶
- Add Firebase SDKs
<body> <!-- Insert these scripts at the bottom of the HTML, but before you use any Firebase services --> <!-- Firebase App (the core Firebase SDK) is always required and must be listed first --> <script src="/__/firebase/10.13/firebase-app-compat.js"></script> <!-- Add Firebase products that you want to use --> <script src="/__/firebase/10.13/firebase-firestore-compat.js"></script> </body> - Load plugin (minify file) in preload stage
scene.load.plugin('rexfirebaseplugin', 'https://raw.githubusercontent.com/rexrainbow/phaser3-rex-notes/master/dist/rexfirebaseplugin.min.js', true); - Initialize firebase application.
firebase.initializeApp({ apiKey: '...', authDomain: '...', databaseURL: '...', projectId: '...', storageBucket: '...', messagingSenderId: '...' }) - Add file-manager object
var fileManager = scene.plugins.get('rexfirebaseplugin').add.files(config);
Import plugin¶
- Install rex plugins from npm
npm i phaser3-rex-plugins - Add Firebase SDKs
<body> <!-- Insert these scripts at the bottom of the HTML, but before you use any Firebase services --> <!-- Firebase App (the core Firebase SDK) is always required and must be listed first --> <script src="/__/firebase/10.13/firebase-app-compat.js"></script> <!-- Add Firebase products that you want to use --> <script src="/__/firebase/10.13/firebase-firestore-compat.js"></script> </body> - Install plugin in configuration of game
import FirebasePlugin from 'phaser3-rex-plugins/plugins/firebase-plugin.js'; var config = { // ... plugins: { global: [{ key: 'rexFirebase', plugin: FirebasePlugin, start: true }] } // ... }; var game = new Phaser.Game(config); - Initialize firebase application.
firebase.initializeApp({ apiKey: '...', authDomain: '...', databaseURL: '...', projectId: '...', storageBucket: '...', messagingSenderId: '...' }) - Add file-manager object
var fileManager = scene.plugins.get('rexFirebase').add.files(config);
Import class¶
- Install rex plugins from npm
npm i phaser3-rex-plugins - Add Firebase SDKs
<body> <!-- Insert these scripts at the bottom of the HTML, but before you use any Firebase services --> <!-- Firebase App (the core Firebase SDK) is always required and must be listed first --> <script src="/__/firebase/10.13/firebase-app-compat.js"></script> <!-- Add Firebase products that you want to use --> <script src="/__/firebase/10.13/firebase-database-compat.js"></script> </body> - Initialize firebase application.
firebase.initializeApp({ apiKey: '...', authDomain: '...', databaseURL: '...', projectId: '...', storageBucket: '...', messagingSenderId: '...' }) - Import class
import { Files } from 'phaser3-rex-plugins/plugins/firebase-components.js'; - Add file-manager object
var fileManager = new Files(config);
Create instance¶
var fileManager = scene.plugins.get('rexFirebase').add.files({
root: ''
});
root: Collection name of these files.
Save file¶
- Set file owner.
or
fileManager.setOwner(userID);fileManager.setOwner({ userID: userID });userID: User ID of file owner.
- Save header and content data.
- Overwrite
fileManager.save(fileID, header, content);fileID: Unique ID of this file.header: Header data for indexing, a JSON object.- Reserve keys :
userID,fileID,type,contentDocID. (i.e. don't use these keys)
- Reserve keys :
content: Content/body, a JSON object.- Reserve keys :
userID,fileID,type. (i.e. don't use these keys)
- Reserve keys :
- Update
fileManager.save(fileID, header, content, true);
- Overwrite
Load headers¶
- Set file owner.
fileManager.setOwner(userID); - Load all headers of this file owner.
fileManager.loadHeaders() .then(function(result) { // var headers = result.headers; // var userID = result.userID; }) .catch(function(result) { // var error = result.error; // var userID = result.userID; })headers: Get header byheaders[fileID], each header containsheader.fileID: Unique ID of this file.header.userID: User ID of file owner.
Load file¶
- Set file owner.
fileManager.setOwner(userID); - Load file.
fileManager.load(fileID) .then(function(result) { // var header = result.header; // var content = result.content; // var fileID = result.fileID; // var userID = result.userID; }) .catch(function(result) { // var error = result.error; // var fileID = result.fileID; // var userID = result.userID; })header,content: Header/content of this file.fileID: Unique ID of this file.userID: User ID of file owner.