Skip to content

feat(auth)!: use native for isSignInWithEmailLink / BREAKING CHANGE: return type now Promise<boolean> not boolean #8450

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

Willham12
Copy link

Use native version of isSignInWithEmailLink instead.

Copy link

vercel bot commented Apr 7, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
react-native-firebase ✅ Ready (Inspect) Visit Preview 💬 Add feedback Apr 8, 2025 4:06pm

@CLAassistant
Copy link

CLAassistant commented Apr 7, 2025

CLA assistant check
All committers have signed the CLA.

@Willham12 Willham12 changed the title feat(auth): use native method to handle isSignInWithEmailLink feat(auth): use native method to andle isSignInWithEmailLink Apr 7, 2025
@MichaelVerdon MichaelVerdon changed the title feat(auth): use native method to andle isSignInWithEmailLink feat(auth): use native method to handle isSignInWithEmailLink Apr 7, 2025
@MichaelVerdon MichaelVerdon self-requested a review April 7, 2025 10:18
MichaelVerdon

This comment was marked as resolved.

@mikehardy

This comment was marked as resolved.

@mikehardy

This comment was marked as resolved.

Copy link
Collaborator

@mikehardy mikehardy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this will be a breaking change - a tiny one but we need to issue it as a breaking change since the return type will be Promise now not directly a boolean

Suggest batching it with the needed type change of modular DocumentSnapshot.exists from property to method as noted here #8460 since that is also small but is a breaking change

Additionally - need to take some care here that this continues to work on the other platform - seems as though it should, the API exists https://firebase.google.com/docs/reference/js/auth.md#issigninwithemaillink_db04f1d

@mikehardy mikehardy changed the title feat(auth): use native method to handle isSignInWithEmailLink feat(auth)!: use native for isSignInWithEmailLink / BREAKING CHANGE: return type now Promise<boolean> not boolean Apr 8, 2025
@mikehardy mikehardy force-pushed the feat/nativeIsSignInWithEmailLinkMethode branch from 6cab58b to f003fde Compare April 8, 2025 13:57
@mikehardy
Copy link
Collaborator

I pulled this locally, fixed up the lint error, altered the e2e test to handle the return type, and set the commit message up to properly trigger the breaking change and CHANGELOG file note I want developers to see

If this passes CI it is ready to go pending decision on what to bundle with it in order to take advantage of the breaking change / semver major

Copy link
Collaborator

@mikehardy mikehardy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Willham12 looks like the CLA still needs signing from you?

@mikehardy mikehardy added Workflow: Pending Merge Waiting on CI or similar and removed Workflow: Waiting for User Response Blocked waiting for user response. labels Apr 8, 2025
@mikehardy

This comment was marked as resolved.

…an> vs boolean

- style(auth, ios): result of `yarn lint:ios:fix`
- test(auth): await isSignInWithEmailLink, note apiKey platform difference

BREAKING CHANGE: return type of auth isSignInWithEmailLink changed from boolean to Promise<boolean>
@mikehardy mikehardy force-pushed the feat/nativeIsSignInWithEmailLinkMethode branch from f003fde to d01b676 Compare April 8, 2025 16:02
Copy link
Collaborator

@mikehardy mikehardy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

turns out the web/other implementation also requires apiKey, really it is only the iOS one that doesn't. Strange but true

Repaired the PR by adding in the necessary items for web/other, this should pass CI now except missing CLA

@mikehardy
Copy link
Collaborator

Only thing this is blocking on now: it is a breaking change, and ideally we bundle other breaking changes with it at the same time to reduce the number/frequency of them over time as a small optimization.

I haven't scanned the PR queue or our plans internally yet to see what else we could bundle with it. Once that's decided, merge all the breaking changes as a group and release then carefully check release notes / changelog to make sure it's got the required messaging on exactly what devs need to do and edit if needed to make sure things are clear for everyone

@mikehardy
Copy link
Collaborator

Got a headsup that firebase-ios-sdk 10.12 will require Xcode 16.2+, which is also a breaking change even though it is also tiny.

Bundle those two together along with anything else that comes along in the next couple days

firebase/firebase-ios-sdk#14606 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Workflow: Pending Merge Waiting on CI or similar
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants