Created
November 9, 2019 01:12
-
-
Save hsuan1117/1eda00a8093b6fc1fb296fb951cdd26e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const FIREBASE_MEMBERSYSTEM_VERSION="1.0.0" | |
class FirebaseMemberSystem { | |
constructor(onLoginDetected){ | |
firebase.auth().languageCode = 'zh-TW'; | |
this.AuthedUser=0 | |
this.errorCodes={ | |
"auth/account-exists-with-different-credential":"帳號已存在", | |
"auth/email-already-in-use":"電子郵件已被使用", | |
"":"" | |
} | |
var IIFEthis=this; | |
firebase.auth().onAuthStateChanged(function(user) { | |
if (user) { | |
IIFEthis.AuthedUser=user | |
IIFEthis.onLoginDetected=onLoginDetected?onLoginDetected():null | |
if(onLoginDetected)onLoginDetected() | |
} | |
}); | |
} | |
static set AuthedUser(userObject){ | |
this.AuthedUser=userObject | |
} | |
static get AuthedUser(){ | |
return this.AuthedUser; | |
} | |
handleError(code){ | |
if(code in this.errorCodes){ | |
alert(`錯誤: this.errorCodes[code]`) | |
}else{ | |
alert(`錯誤: 未知的錯誤代碼(this.errorCodes[code])`) | |
} | |
} | |
handleError(code){ | |
switch(code){ | |
case 1: | |
alert("ok") | |
break; | |
} | |
} | |
setAuthUser(user){ | |
this.AuthedUser=user | |
} | |
SignIn(){ | |
return new FirebaseMemberSystem__SignIn() | |
} | |
SignOut(){ | |
return new FirebaseMemberSystem__SignOut() | |
} | |
Register(){ | |
return new FirebaseMemberSystem__Register() | |
} | |
} | |
class FirebaseMemberSystem__SignIn extends FirebaseMemberSystem { | |
Google(){ | |
var provider = new firebase.auth.GoogleAuthProvider(); | |
var IIFESuccess=super.handleSuccess, | |
IIFEError=super.handleError | |
firebase.auth().signInWithPopup(provider).then(function(result) { | |
this.AuthedUser = result.user | |
IIFESuccess(1) | |
}).catch(function(error) { | |
IIFEError(error.code) | |
}); | |
} | |
General(accout,password){ | |
var IIFESuccess=super.handleSuccess, | |
IIFEError=super.handleError | |
firebase.auth().signInWithEmailAndPassword(accout,password).then(function(user){ | |
this.AuthedUser = result.user | |
IIFESuccess(1) | |
}).catch(function(error){ | |
IIFEError(error.code) | |
}) | |
} | |
} | |
class FirebaseMemberSystem__Register extends FirebaseMemberSystem { | |
Google(){ | |
var provider = new firebase.auth.GoogleAuthProvider(); | |
var IIFESuccess=super.handleSuccess, | |
IIFEError=super.handleError | |
firebase.auth().signInWithPopup(provider).then(function(result) { | |
this.AuthedUser = result.user | |
IIFESuccess(1) | |
}).catch(function(error) { | |
IIFEError(error.code) | |
}); | |
} | |
General(accout,password){ | |
var IIFESuccess=super.handleSuccess, | |
IIFEError=super.handleError | |
firebase.auth().createUserWithEmailAndPassword(account,password).then(function(user){ | |
this.AuthedUser = result.user | |
IIFESuccess(1) | |
}).catch(function(error){ | |
IIFEError(error.code) | |
}) | |
} | |
} | |
class FirebaseMemberSystem__SignOut extends FirebaseMemberSystem { | |
constructor(){ | |
var IIFESuccess=super.handleSuccess, | |
IIFEError=super.handleError | |
firebase.auth().signOut().then(function(user){ | |
this.AuthedUser=0 | |
IIFESuccess(1) | |
}).catch(function(error){ | |
IIFEError(error.code) | |
}) | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment