1
+ // [SNIPPET_REGISTRY disabled]
2
+ // [SNIPPETS_SEPARATION enabled]
3
+
4
+ function oidcProvider ( ) {
5
+ // [START auth_oidc_provider_create]
6
+ const { OAuthProvider } = require ( "firebase/auth" ) ;
7
+
8
+ const provider = new OAuthProvider ( "oidc.myProvider" ) ;
9
+ // [END auth_oidc_provider_create]
10
+ }
11
+
12
+ function oidcSignInPopup ( provider ) {
13
+ // [START auth_oidc_signin_popup]
14
+ const { getAuth, signInWithPopup, OAuthProvider } = require ( "firebase/auth" ) ;
15
+
16
+ const auth = getAuth ( ) ;
17
+ signInWithPopup ( auth , provider )
18
+ . then ( ( result ) => {
19
+ // User is signed in.
20
+ } ) . catch ( ( error ) => {
21
+ // Handle Errors here.
22
+ const errorCode = error . code ;
23
+ const errorMessage = error . message ;
24
+ // The email of the user's account used.
25
+ const email = error . email ;
26
+ // The AuthCredential type that was used.
27
+ const credential = OAuthProvider . credentialFromError ( error ) ;
28
+ // ...
29
+ } ) ;
30
+ // [END auth_oidc_signin_popup]
31
+ }
32
+
33
+ function oidcSignInRedirect ( provider ) {
34
+ // [START auth_oidc_signin_redirect]
35
+ const { getAuth, signInWithRedirect } = require ( "firebase/auth" ) ;
36
+
37
+ const auth = getAuth ( ) ;
38
+ signInWithRedirect ( auth , provider ) ;
39
+ // [END auth_oidc_signin_redirect]
40
+ }
41
+
42
+ function oidcSignInRedirectResult ( provider ) {
43
+ // [START auth_oidc_signin_redirect_result]
44
+ import { getAuth , getRedirectResult , OAuthProvider } from "firebase/auth" ;
45
+
46
+ const auth = getAuth ( ) ;
47
+ getRedirectResult ( auth )
48
+ . then ( ( result ) => {
49
+ credential = OAuthProvider . credentialFromResult ( result ) ;
50
+ // ...
51
+ } )
52
+ . catch ( ( error ) => {
53
+ // Handle Errors here.
54
+ const errorCode = error . code ;
55
+ const errorMessage = error . message ;
56
+ // The email of the user's account used.
57
+ const email = error . email ;
58
+ // The AuthCredential type that was used.
59
+ const credential = OAuthProvider . credentialFromError ( error ) ;
60
+ console . log ( error ) ;
61
+ console . log ( credential ) ;
62
+ // ...
63
+ } ) ;
64
+ // [END auth_oidc_signin_redirect_result]
65
+ }
66
+
67
+ function oidcDirectSignIn ( provider , oidcIdToken ) {
68
+ // [START auth_oidc_direct_sign_in]
69
+ import { getAuth , OAuthProvider } from "firebase/auth" ;
70
+
71
+ const auth = getAuth ( ) ;
72
+ const credential = provider . credential ( {
73
+ idToken : oidcIdToken ,
74
+ } )
75
+ signInWithCredential ( auth , credential )
76
+ . then ( ( result ) => {
77
+ credential = OAuthProvider . credentialFromResult ( result ) ;
78
+ // ...
79
+ } )
80
+ . catch ( ( error ) => {
81
+ // Handle Errors here.
82
+ const errorCode = error . code ;
83
+ const errorMessage = error . message ;
84
+ // The email of the user's account used.
85
+ const email = error . email ;
86
+ // The AuthCredential type that was used.
87
+ const credential = OAuthProvider . credentialFromError ( error ) ;
88
+ console . log ( error ) ;
89
+ console . log ( credential ) ;
90
+ // ...
91
+ } ) ;
92
+ // [END auth_oidc_direct_sign_in]
93
+ }
0 commit comments