Ich möchte überprüfen, ob der Benutzer das Mitglied eines bestimmten Teams ist, wenn der Benutzer nicht gefragt wird, ob er Mitglied ist, dann wird er an a weitergeleitet Seite. Ich habe einige ähnliche Fragen gefunden, aber irgendwie konnte ich immer noch keinen Benutzer zur Datenbank hinzufügen. Unten ist mein Code und dieser Code stürzt ab, wenn ich auf eine der Liste klicke.Firebase - Überprüfen Sie, ob Daten vorhanden sind und fügen Sie sie hinzu
databaseMembers = FirebaseDatabase.getInstance().getReference("members");
listViewTeams.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
//getting the selected team
Team team = teams.get(i);
checkMember();
//creating an intent
Intent intent = new Intent(getApplicationContext(), ChatRoomActivity.class);
//putting team name and id to intent
intent.putExtra(TEAM_ID, team.getTeamId());
intent.putExtra(TEAM_NAME, team.getTeamName());
//starting the activity with intent
startActivity(intent);
}
});
private void checkMember(){
FirebaseUser user = firebaseAuth.getCurrentUser();
final String teamMember = user.getEmail();
databaseMembers.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(dataSnapshot.hasChild(teamMember)){
finish();
}
else{
databaseMembers.push().setValue(teamMember);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
Logcat:
04-07 12:44:41.167 19091-19091/com.example.user.stfv2 E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.user.stfv2, PID: 19091
com.google.firebase.database.DatabaseException: Invalid Firebase Database path: [email protected] Firebase Database paths must not contain '.', '#', '$', '[', or ']'
at com.google.android.gms.internal.zzbtf.zzjl(Unknown Source)
at com.google.firebase.database.DataSnapshot.hasChild(Unknown Source)
at com.example.user.stfv2.MainActivity$8.onDataChange(MainActivity.java:352)
at com.google.firebase.database.Query$1.onDataChange(Unknown Source)
at com.google.android.gms.internal.zzbpx.zza(Unknown Source)
at com.google.android.gms.internal.zzbqx.zzZS(Unknown Source)
at com.google.android.gms.internal.zzbra$1.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Meine Datenbank:
Wenn Benutzer klicken Sie auf "heng" Team, wird es, wenn der Benutzer E-Mails abrufen in der Datenbank vorhanden sind, wenn isn Es wird dann die E-Mail des Benutzers als teamMember hinzufügen. Ich kann den Benutzer hinzufügen, der das Team erstellt hat, aber ich kann anscheinend keine Benutzer hinzufügen, die später beitreten möchten. Wirklich zu schätzen, wenn mir jemand helfen könnte. Lassen Sie es mich wissen, wenn es an Informationen mangelt.
Wo sollte ich diese Methoden platzieren? Überall im Code? Tut mir leid, ich weiß nicht, wie man die Methode encode/decode benutzt. – Zephyros
Könnten Sie mir erklären, wie ich diese Codes verwenden soll? – Zephyros
In Ihrer Aktivität, in der Sie sie benötigen oder in einer Hilfsklasse. –