To properly test Firebase functions and Firestore operations, you need authentication for:
- Writing to Firestore → Firebase Auth to write data
- Calling Functions → Firebase Auth to call secured functions
- Monitoring Results → Firebase Auth to check logs and status
# Setup authentication
firebase login --no-localhost
# Set project
firebase use PROJECT_ID
# Test authentication
firebase projects:list# Setup authentication
gcloud auth login
# Set project
gcloud config set project PROJECT_ID
# Test authentication
gcloud auth print-access-token# Create service account
gcloud iam service-accounts create firebase-sa \
--display-name="Firebase Service Account"
# Grant permissions
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:firebase-sa@PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/datastore.user"
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:firebase-sa@PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/cloudfunctions.invoker"# Navigate to your project directory
cd /path/to/your/firebase-project
# Authenticate with Firebase
firebase login --no-localhost
firebase use PROJECT_ID# Test Firebase access
firebase projects:list
# Test Google Cloud access
gcloud auth print-access-token# Run test scripts
./remote/test-functions-consolidated.sh- ✅ Firebase CLI Auth - To write to Firestore
- ✅ Project Access - To access your project
- ✅ Firestore Permissions - To create/update documents
- ✅ Google Cloud Auth - To get access tokens
- ✅ Function Permissions - To call secured functions
- ✅ Bearer Token - For API authentication
- ✅ Firebase CLI Auth - To check logs
- ✅ Firestore Access - To read processed data
- ✅ Function Logs - To monitor execution
If you can't set up authentication immediately, you can still test:
# Go to Firebase Console
https://console.firebase.google.com/project/PROJECT_ID/firestore
# Add documents manually through the console UI
# Collection: your_collection
# Document ID: your_document_id
# Fields: your data fields# Check if functions are deployed (no auth needed)
firebase functions:list
# Test function accessibility (no auth needed)
curl -s -w "Status: %{http_code}\n" "https://REGION-PROJECT_ID.cloudfunctions.net/FUNCTION_NAME"- Check Firebase Console for function logs
- Check Firestore for processed data
- Monitor function execution status
# Clear and re-authenticate
firebase logout
firebase login --no-localhost
# Check current user
firebase projects:list# Clear and re-authenticate
gcloud auth revoke --all
gcloud auth login
# Check current user
gcloud auth list# Check project access
gcloud projects list
# Check IAM permissions
gcloud projects get-iam-policy PROJECT_IDroles/datastore.user- Write to Firestoreroles/firebase.admin- Full Firebase access
roles/cloudfunctions.invoker- Call functionsroles/cloudfunctions.developer- Deploy functions
roles/logging.viewer- View function logsroles/datastore.viewer- Read Firestore data
# 1. Setup authentication
firebase login --no-localhost
firebase use PROJECT_ID
# 2. Test authentication
firebase projects:list
# 3. Test functions
./remote/test-functions-consolidated.sh# 1. Add data manually in Firebase Console
# 2. Test function status
firebase functions:list
# 3. Monitor in Firebase Console- ✅
firebase projects:listreturns project list - ✅
gcloud auth print-access-tokenreturns token - ✅
firebase firestore:getworks (if document exists)
- ✅ Functions return 403 (secured) or 200 (with auth)
- ✅ Function logs show execution
- ✅ Firestore contains processed data
- ✅ Firestore contains documents
- ✅ Data is accessible through console
- ✅ Functions can process data
- Service Account - Use service account instead of user auth
- Environment Variables - Store credentials securely
- IAM Roles - Grant minimal required permissions
- Monitoring - Set up proper logging and alerts
- Backup - Regular Firestore backups
- Use service accounts for automated operations
- Grant minimal required permissions
- Rotate credentials regularly
- Monitor access logs
- Use Firebase Security Rules
Once authentication is set up, you can:
- Write data to Firestore
- Call functions securely
- Monitor results in real-time
- Scale up for production use
Your Firebase project is ready for comprehensive testing with proper authentication!