2017-03-06 7 views
0

でサイン私はセットアップFirebaseのユーザーを持っています。Firebaseは、カスタムトークン

FirebaseAuth.getInstance().createCustomToken(uid) 
    .addOnSuccessListener(new OnSuccessListener<String>() { 
     @Override 
     public void onSuccess(String customToken) { 
      // Send token back to client 
     } 
    }); 

次に、クライアントでカスタムトークンを返します。私は次にsignInWithCustomTokenをご覧になれます。予想通り

getUserWithToken(personModel: PersonModel): Promise<firebase.User> { 
    return new Promise<firebase.User>((resolve) => { 
     this.firebaseService.getCustomToken(personModel.uid).then((customToken: string) => { 
      this.fireAuth.signInWithCustomToken(customToken).then((data: FirebaseAuthState) => { 
       this.fireAuth.onAuthStateChanged((fireUser: firebase.User) => { 
        if (fireUser && fireUser.uid === personModel.uid) { 
         resolve(fireUser); 
        } else { 
         resolve(null); 
        } 
       }); 
      }).catch((error) => { 
       console.error('Error getting user with CustomeToken login for ' + personModel.uid, error); 
       this.doAlert(error.message); 
      }); 
     }); 
    }); 
} 

しかし、代わりに上記でログインするのは、ユーザー(uidMG76cXdqhDNrx3BJktUq62...で)、Firebaseは異なるuidRoPBW0NKRoWEI1o8wgb9DD...を持つ新しいユーザーを作成します。

enter image description here

それはそれかのようです古いユーザーのuidを取得し、そのユーザーを作成します。しかし、私はそれが渡されたuidMG76cXdqhDNrx3BJktUq62...に関連付けられているユーザーとだけサインインすると思っています。

ご了承ください。

答えて

0

SOLUTION

問題は私の一部の愚かな間違いでした。

サーバーコードがクラスインスタンスに保存されていたため、古いカスタムトークンをキャッシュしていました。メソッドが呼び出されるたびにカスタムトークンを削除することで修正されました。

関連する問題