【发布时间】:2019-12-27 03:46:26
【问题描述】:
大家好,在这个应用程序中,我使用 firebase 作为后端,我在其中创建了具有 firebase 身份验证的用户。我想在注释中添加firebase Auth id,以便我可以检索该当前登录用户的注释。现在我的笔记被添加到(ToDo)下的数据库中但是他们得到了自己的ID而不是用户ID我该如何解决这个问题?
public class HomeActivity extends AppCompatActivity {
private FirebaseAuth firebaseAuth;
private Button logout;
private GridLayoutManager gridLayoutManager;
private RecyclerView modelNotesList; //https://camposha.info/android-firebase-realtime-database-with-recyclerview/
private FloatingActionButton addNotePageButton;
private DatabaseReference notesDbRef;
private FirebaseDatabase firebaseDatabase;
private TextView Title,text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
Title = findViewById(R.id.tvNoteTitle);
text = findViewById(R.id.TvNoteText);
addNotePageButton = findViewById(R.id.fab_button_addPage);
firebaseDatabase = FirebaseDatabase.getInstance();
firebaseAuth = FirebaseAuth.getInstance(); // get inSTACE
// acsess database and retrive data
FirebaseDatabase.getInstance().getReference("NoteList").child(firebaseAuth.getCurrentUser().getUid()).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
NotesList notelist = dataSnapshot.getValue(NotesList.class);
Title.setText( notelist.getTitle());
text.setText(notelist.getText());
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Toast.makeText(HomeActivity.this,databaseError.getCode(),Toast.LENGTH_SHORT).show();
}
});
addNotePageButton.setOnClickListener(new View.OnClickListener() { // Float button click
@Override
public void onClick(View v) {
Intent intent = new Intent(HomeActivity.this, NoteInputActivity.class);
startActivity(intent);
}
});
}
// everything below is used in the menu
private void Logout(){ // sign out method called in switchcase
firebaseAuth.signOut();
finish();
startActivity(new Intent(HomeActivity.this,MainActivity.class));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) { //create menu on toolbar
getMenuInflater().inflate(R.menu.menu,menu); //inflated inside
return true;
}
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) { // handle on click events on items on menu
switch(item.getItemId()){
case R.id.logoutMenu:{
Logout();
break;
}
case R.id.ProfileMenu:{
startActivity(new Intent(HomeActivity.this,ProfileActivity.class));
break;
}
}
return super.onOptionsItemSelected(item);
}
}
【问题讨论】:
标签: android firebase firebase-realtime-database