我使用Firebase Quickstarts for Android Auth示例,然后我在firebase仪表板中创建了一个用户,使用电子邮件和密码登录用户,用户成功登录.但是当我删除用户时,它仍然登录并显示旧用户的电子邮件(user.getEmail())
// [START auth_state_listener]
mAuthListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user != null) {
// User is signed in
Log.d(TAG, "onAuthStateChanged:signed_in:" + user.getEmail());
} else {
// User is signed out
Log.d(TAG, "onAuthStateChanged:signed_out");
}
// [START_EXCLUDE]
updateUI(user);
// [END_EXCLUDE]
}
};
// [END auth_state_listener]
Run Code Online (Sandbox Code Playgroud)
我的firebase仪表板中的用户和AuthStateListener都没有用户登录的用户.
怎么可能呢?
我的firebase
项目有问题.我按照firebase
GitHub文档中的步骤进行操作,但是我得到了这个例外
java.lang.RuntimeException: java.lang.NoSuchMethodException: <init>
[class android.view.View]
Run Code Online (Sandbox Code Playgroud)
这是一个ViewHolder
不是内部阶级的类.
public class ProductViewHolder extends RecyclerView.ViewHolder{
public View mView;
public ImageView img;
public TextView title;
public TextView price;
public RatingBar stars;
ProductViewHolder(View itemView) {
super(itemView);
mView = itemView;
img = (ImageView) itemView.findViewById(R.id.productImg);
title = (TextView) itemView.findViewById(R.id.txtTitle);
price = (TextView) itemView.findViewById(R.id.txtPrice);
stars = (RatingBar) itemView.findViewById(R.id.ratingBar);
}
}
Run Code Online (Sandbox Code Playgroud)
这是与firebase相关的代码
@Override
protected void onStart() {
super.onStart();
// Recycler adapter
FirebaseRecyclerAdapter<Product, ProductViewHolder> adapter =
new FirebaseRecyclerAdapter<Product, ProductViewHolder>(
Product.class,
R.layout.product_list_item,
ProductViewHolder.class,
firebaseRef.child("product")) { …
Run Code Online (Sandbox Code Playgroud) 我想通过添加一个带有地图对象的键来存储用户信息
private void createUserData() {
Toast.makeText(LoginActivity.this, "test begin",
Toast.LENGTH_SHORT).show();
DatabaseReference usersRef = FirebaseDatabase.getInstance().getReference().child("users");
//set fields data
Map<String, String> userData = new HashMap<>();
userData.put("userId", "test id ");
userData.put("email", "as@gmail");
userData.put("userName", "abdo");
usersRef.child("userkey").setValue(userData);
Toast.makeText(LoginActivity.this, "test end",
Toast.LENGTH_SHORT).show();
}
Run Code Online (Sandbox Code Playgroud)
当我单击按钮触发此代码时,两个 Toast 对象都显示出来,但没有节点添加到用户节点。这段代码将数据写入 firebase 数据库有什么问题?