Skip to content

Commit

Permalink
fix(firebase): fix code to not use buggy 'catch' from firebase promises
Browse files Browse the repository at this point in the history
  • Loading branch information
gaspard committed Dec 17, 2016
1 parent 5b8ecb8 commit 2c19161
Show file tree
Hide file tree
Showing 7 changed files with 107 additions and 86 deletions.
Expand Up @@ -3,22 +3,24 @@ import {createUser} from './helpers'

export default function createUserWithEmailAndPassword (email, password) {
return firebase.auth().createUserWithEmailAndPassword(email, password)
.then(() => {
return new Promise((resolve) => {
const unsubscribe = firebase.auth().onAuthStateChanged(user => {
unsubscribe()
resolve({
user: createUser(user)
.then(
() => {
return new Promise((resolve) => {
const unsubscribe = firebase.auth().onAuthStateChanged(user => {
unsubscribe()
resolve({
user: createUser(user)
})
})
})
})
})
.catch((error) => {
return {
error: {
code: error.code,
message: error.message
},
(error) => {
return {
error: {
code: error.code,
message: error.message
}
}
}
})
)
}
55 changes: 29 additions & 26 deletions packages/cerebral-provider-firebase/src/getUser.js
Expand Up @@ -3,35 +3,38 @@ import {createUser} from './helpers'

export default function getUser () {
return new Promise((resolve, reject) => {
firebase.auth().getRedirectResult().then((result) => {
if (result.user) {
const user = createUser(result.user)
firebase.auth().getRedirectResult()
.then(
(result) => {
if (result.user) {
const user = createUser(result.user)

if (result.credential) {
user.accessToken = result.credential.accessToken
}
resolve({
user: user
})
} else {
const unsubscribe = firebase.auth().onAuthStateChanged(user => {
unsubscribe()
if (user) {
resolve({
user: createUser(user)
})
} else {
reject()
if (result.credential) {
user.accessToken = result.credential.accessToken
}
resolve({
user: user
})
} else {
const unsubscribe = firebase.auth().onAuthStateChanged(user => {
unsubscribe()
if (user) {
resolve({
user: createUser(user)
})
} else {
reject()
}
})
}
},
(error) => {
reject({
code: error.code,
message: error.message,
email: error.email
})
}
})
.catch((error) => {
reject({
code: error.code,
message: error.message,
email: error.email
})
})
)
})
}
8 changes: 5 additions & 3 deletions packages/cerebral-provider-firebase/src/signInAnonymously.js
Expand Up @@ -4,14 +4,16 @@ import {createUser} from './helpers'
export default function signInAnonymously () {
return new Promise((resolve, reject) => {
firebase.auth().signInAnonymously()
.then(() => {
.then(
() => {
const unsubscribe = firebase.auth().onAuthStateChanged(user => {
unsubscribe()
resolve({
user: createUser(user)
})
})
})
.catch(reject)
},
reject
)
})
}
Expand Up @@ -3,22 +3,24 @@ import {createUser} from './helpers'

export default function signInWithEmailAndPassword (email, password) {
return firebase.auth().signInWithEmailAndPassword(email, password)
.then(() => {
return new Promise((resolve) => {
const unsubscribe = firebase.auth().onAuthStateChanged(user => {
unsubscribe()
resolve({
user: createUser(user)
.then(
() => {
return new Promise((resolve) => {
const unsubscribe = firebase.auth().onAuthStateChanged(user => {
unsubscribe()
resolve({
user: createUser(user)
})
})
})
})
})
.catch((error) => {
return {
error: {
code: error.code,
message: error.message
},
(error) => {
return {
error: {
code: error.code,
message: error.message
}
}
}
})
)
}
30 changes: 17 additions & 13 deletions packages/cerebral-provider-firebase/src/signInWithFacebook.js
Expand Up @@ -15,20 +15,24 @@ export default function signInWithFacebook (options) {
firebase.auth().signInWithRedirect(provider)
resolve()
} else {
firebase.auth().signInWithPopup(provider).then((result) => {
const user = createUser(result.user)
firebase.auth().signInWithPopup(provider)
.then(
(result) => {
const user = createUser(result.user)

user.accessToken = result.credential.accessToken
resolve({
user: user
})
}).catch((error) => {
reject({
code: error.code,
message: error.message,
email: error.email
})
})
user.accessToken = result.credential.accessToken
resolve({
user: user
})
},
(error) => {
reject({
code: error.code,
message: error.message,
email: error.email
})
}
)
}
})
}
30 changes: 17 additions & 13 deletions packages/cerebral-provider-firebase/src/signInWithGoogle.js
Expand Up @@ -15,20 +15,24 @@ export default function signInWithGoogle (options) {
firebase.auth().signInWithRedirect(provider)
resolve()
} else {
firebase.auth().signInWithPopup(provider).then((result) => {
const user = createUser(result.user)
firebase.auth().signInWithPopup(provider)
.then(
(result) => {
const user = createUser(result.user)

user.accessToken = result.credential.accessToken
resolve({
user: user
})
}).catch((error) => {
reject({
code: error.code,
message: error.message,
email: error.email
})
})
user.accessToken = result.credential.accessToken
resolve({
user: user
})
},
(error) => {
reject({
code: error.code,
message: error.message,
email: error.email
})
}
)
}
})
}
10 changes: 7 additions & 3 deletions packages/cerebral-provider-firebase/src/transaction.js
Expand Up @@ -4,7 +4,11 @@ import {

export default function transaction (path, transactionFunction) {
const ref = createRef(path)
return ref.transaction(transactionFunction)
.then((result) => ({committed: result.committed, value: result.snapshot.val()}))
.catch((error) => ({error: error.message}))
return new Promise((resolve, reject) => {
ref.transaction(transactionFunction)
.then(
(result) => resolve({committed: result.committed, value: result.snapshot.val()}),
(error) => reject({error: error.message})
)
})
}

0 comments on commit 2c19161

Please sign in to comment.