You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
auth=firebase.auth()
# Create user with email and passworduser=auth.create_user_with_email_and_password("user@example.com", "securePassword123")
print(user["idToken"])
Sign In
# Sign in with email and passworduser=auth.sign_in_with_email_and_password("user@example.com", "securePassword123")
# Get account infoinfo=auth.get_account_info(user["idToken"])
print(info)
Custom Token Authentication
# Create custom token (requires service account)custom_token=auth.create_custom_token(
uid="user123",
additional_claims={"premium": True}
)
# Sign in with custom tokenuser=auth.sign_in_with_custom_token(custom_token.decode("utf-8"))
Password Management
# Send password reset emailauth.send_password_reset_email("user@example.com")
# Verify reset code and set new passwordauth.verify_password_reset_code("reset-code", "newSecurePassword123")
# Refresh ID tokenrefreshed_user=auth.refresh(refresh_token)
Firestore
Collections & Documents
db=firebase.firestore()
# Get a collection referenceusers_ref=db.collection("users")
# Get all documents in a collectionall_users=users_ref.get()
foruserinall_users:
print(user["id"], user.get("name"))
# Set document with specific ID (overwrites)db.collection("users").document("user123").set({
"name": "Summer Smith",
"age": 17
})
# Set with merge (updates only specified fields)db.collection("users").document("user123").set({
"age": 18
}, merge=True)
Getting Documents
# Get a single documentuser=db.collection("users").document("user123").get()
ifuser:
print(user["name"], user["age"])
# Get document by IDuser=db.collection("users").get_by_id("user123")
# Get all documentsall_users=db.collection("users").get_all()
Updating Documents
# Update specific fieldsdb.collection("users").document("user123").update({
"age": 19,
"active": False
})
Deleting Documents
# Delete a documentdb.collection("users").document("user123").delete()
Subcollections
# Access subcollectionposts=db.collection("users").document("user123").subcollection("posts")
# Add to subcollectionposts.add({
"title": "My First Post",
"content": "Hello world!",
"created_at": db.server_timestamp()
})
# Get all postsall_posts=posts.get()
storage=firebase.storage()
# Upload from file pathstorage.child("images/profile.jpg").put("local_image.jpg")
# Upload from file objectwithopen("document.pdf", "rb") asf:
storage.child("documents/report.pdf").put(f)
# Upload with authentication tokenstorage.child("private/file.txt").put("local_file.txt", token=user_token)
Download Files
# Download filestorage.child("images/profile.jpg").download("downloaded_image.jpg")
# Download with tokenstorage.child("private/file.txt").download("file.txt", token=user_token)
Get Download URL
# Get public URLurl=storage.child("images/profile.jpg").get_url()
print(url)
# Get authenticated URLurl=storage.child("private/file.txt").get_url(token=user_token)
print(url)
Delete Files
# Delete file (requires service account)storage.delete("images/old_picture.jpg")
List Files
# List all files (requires service account)files=storage.list_files()
forfileinfiles:
print(file.name)
Working with Authentication Tokens
# Sign in and get tokenauth=firebase.auth()
user=auth.sign_in_with_email_and_password("user@example.com", "password")
id_token=user["idToken"]
# Use token for authenticated operationsdb=firebase.firestore()
user_data=db.collection("protected_collection").get(token=id_token)
# Use token with Realtime Databasertdb=firebase.database()
data=rtdb.child("protected_path").get(token=id_token)
# Use token with Storagestorage=firebase.storage()
storage.child("private/file.txt").download("file.txt", token=id_token)