Limits below are from Firebase’s Authentication limits page on 17 October 2026. Check it for current details.
What Firebase sends
| Sent by | Daily limit, Spark | Daily limit, Blaze | |
|---|---|---|---|
| Address verification | sendEmailVerification |
1,000 | 100,000 |
| Password reset | sendPasswordResetEmail |
150 | 10,000 |
| Address change | verifyBeforeUpdateEmail |
1,000 | 10,000 |
| Email-link sign-in | sendSignInLinkToEmail |
5 | 25,000 |
Each is a link. The 5-a-day limit on email-link sign-in catches most teams testing passwordless sign-in on the free plan: after five, the emails stop until the next day.
Test it by hand
- Create an address in Proxy Mail QA.
- Sign up in your app with it, or request an email sign-in link.
- The link appears on the address’s row within seconds. Open it in the browser where you started, as email-link sign-in expects.
Check the link lands on your app, not localhost: the continue URL comes from your code, and its domain must be in Authentication → Settings → Authorized domains.
Automate it
import { test, expect } from 'proxymail-qa/playwright';
test('Firebase sign-up verifies the address', async ({ page, qa }) => {
const { address, password } = await qa.createAddress({ password: true });
const submitted = new Date();
await page.goto('/signup');
await page.getByLabel('Email').fill(address);
await page.getByLabel('Password').fill(password);
await page.getByRole('button', { name: 'Create account' }).click();
const { value: link } = await qa.waitForLink(address, { type: 'verify', since: submitted });
await page.goto(link);
await expect(page.getByText('Your email has been verified')).toBeVisible();
});
For mobile apps, see Firebase email-link sign-in for mobile apps. Built with Antigravity? Its guide covers the Firebase settings it sets up. More in Test sign-up emails in Playwright.