ユーザーが特定のチームのメンバーであるかどうかを確認したい場合は、ユーザーが参加しない場合は参加依頼し、そうであれば彼はページ。私は同様の質問のいくつかを見つけましたが、どういうわけか私はまだデータベースにユーザーを追加できませんでした。以下は私のコードであり、リストの1つをクリックするたびにこのコードがクラッシュする。Firebase - データが存在するかどうかを確認して追加します
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)
マイデータベース:
"ヘン" チームにユーザーをクリックすると、ISN場合、ユーザーの電子メールが、データベース内に存在する場合、それはチェックしますユーザーのメールをteamMemberとして追加します。チームを作成したユーザーを追加できますが、後で参加したいユーザーを追加できないようです。誰かが私を助けることができたら本当に感謝します。情報が不足している場合はお知らせください。
これらの方法はどこに置く必要がありますか?コードのどこに?申し訳ありませんが、エンコード/デコード方法の使い方はわかりません。 – Zephyros
これらのコードをどのように使うべきか私に説明してください。 – Zephyros
必要な活動やヘルパークラスでの活動。 –