Skip to content

Instantly share code, notes, and snippets.

@hsuan1117
Created November 9, 2019 01:12
Show Gist options
  • Save hsuan1117/1eda00a8093b6fc1fb296fb951cdd26e to your computer and use it in GitHub Desktop.
Save hsuan1117/1eda00a8093b6fc1fb296fb951cdd26e to your computer and use it in GitHub Desktop.
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