0

我正在嘗試創建一個主用戶模塊,該用戶可以刪除其他用戶。我從其他問題閱讀,如果你想刪除一個用戶,你必須以該用戶身份登錄。然後,我意識到您可以使用Firebase身份驗證存儲的憑據信息登錄。 (供參考,我使用谷歌,臉書和電子郵件方法)。Firebase身份驗證:無法實例化AuthCredential

我還保存在我的火力地堡數據庫中的用戶實體對應於火力地堡驗證。這裏是我的用戶等級:我存儲AuthCredential比如在我的用戶,這是我的第一次設置時,我註冊了該用戶,(或與Facebook和谷歌登錄)

public class User { 
     // variables. 
     private String appId; 
     private String email; 
     private String name; 
     private String description; 
     private String photoUrl; 
     private boolean isAdmin; 
     private boolean isSuspended; 
     private boolean isDeleted; 
     private AuthCredential credential; 

     // all those getters and setters go here. 
} 

通知。 每當我註冊/登錄,我得到這個錯誤:

java.lang.RuntimeException: java.lang.InstantiationException: can't instantiate class com.google.firebase.auth.AuthCredential 

,但我檢查我的火力數據庫和證書插入。

1. FirebaseAuth using email and password. 使用電子郵件和密碼的Firebase身份驗證。

2. FirebaseAuth using google provider 火力地堡驗證使用谷歌提供。

我的問題是,什麼是存儲我的用戶憑據在火力數據庫,並再次恢復它的正確方法是什麼? 另外,我不知道我在做什麼是對的,但我的觀點是,我想從某個管理員用戶中刪除另一個用戶。要做到這一點,在我的主用戶模塊,我要我的商店管理員用戶憑證,然後我登錄的誰將會被刪除用戶,刪除自己,在以管理員用戶再簽收通過使用存儲管理員的用戶憑證。有沒有其他方法可以實現這一點?

感謝您的幫助。

編輯

我有錯誤,每當我這樣做:

User curUser = dataSnapshot.getValue(User.class); 

...之前我在用戶類中添加AuthCredential實例,它是罰款。

回答

0

private FirebaseAuth firebaseAuth;

firebaseAuth = FirebaseAuth.getInstance(); 


    //logging in the user 
    firebaseAuth.signInWithEmailAndPassword(email, password) 
      .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { 
       @Override 
       public void onComplete(@NonNull Task<AuthResult> task) { 
        progressDialog.dismiss(); 
        //if the task is successfull 
        if(task.isSuccessful()){ 
         //start the activity 
         finish(); 
         startActivity(new Intent(getApplicationContext(), Activity.class)); 
        } 
       } 
      });