@phygitallabs/portal-platform
v6.8.1
Published
This package provides a comprehensive platform setup with Firebase integration, authentication, and various UI components.
Readme
Platform Package
This package provides a comprehensive platform setup with Firebase integration, authentication, and various UI components.
Firebase Configuration
New Dynamic Configuration (Recommended)
Instead of hardcoding Firebase config in JSON files, you can now pass the configuration dynamically through the provider:
import { PlatformProvider, FirebaseConfig } from "@phygitallabs/portal-platform";
const firebaseConfig: FirebaseConfig = {
apiKey: process.env.REACT_APP_FIREBASE_API_KEY!,
authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN!,
projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID!,
storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET!,
messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGING_SENDER_ID!,
appId: process.env.REACT_APP_FIREBASE_APP_ID!,
measurementId: process.env.REACT_APP_FIREBASE_MEASUREMENT_ID,
};
function App() {
return (
<PlatformProvider
baseURL="https://your-api-url.com"
firebaseConfig={firebaseConfig}
>
{/* Your app content */}
</PlatformProvider>
);
}Using Firebase Services
Use the provided hooks to access Firebase services:
import {
useFirebaseAuth,
useFirebaseFirestore,
useFirebaseStorage,
useFirebaseAuthActions,
} from "@phygitallabs/portal-platform";
function MyComponent() {
const auth = useFirebaseAuth();
const firestore = useFirebaseFirestore();
const storage = useFirebaseStorage();
const { signInWithEmail, signInWithGoogle } = useFirebaseAuthActions();
const handleLogin = async () => {
try {
await signInWithEmail("[email protected]", "password");
} catch (error) {
console.error("Login failed:", error);
}
};
return <button onClick={handleLogin}>Login</button>;
}Migration from Static Config
If you're migrating from the old static configuration (firebase_config.json):
- Remove the
firebase_config.jsonfile - Update your
PlatformProviderto acceptfirebaseConfigprop - Pass your Firebase configuration through environment variables or other secure methods
- Update any direct Firebase imports to use the new hooks
Legacy Support
The package still provides backward compatibility for existing static Firebase imports, but they will show deprecation warnings and require the FirebaseProvider context.
Environment Variables
Set up your environment variables:
REACT_APP_FIREBASE_API_KEY=your-api-key
REACT_APP_FIREBASE_AUTH_DOMAIN=your-project.firebaseapp.com
REACT_APP_FIREBASE_PROJECT_ID=your-project-id
REACT_APP_FIREBASE_STORAGE_BUCKET=your-project.appspot.com
REACT_APP_FIREBASE_MESSAGING_SENDER_ID=123456789
REACT_APP_FIREBASE_APP_ID=1:123456789:web:abcdef
REACT_APP_FIREBASE_MEASUREMENT_ID=G-ABCDEF123