获取现有的 firebase 子密钥
Posted
技术标签:
【中文标题】获取现有的 firebase 子密钥【英文标题】:Getting the existing firebase child key 【发布时间】:2019-03-12 14:52:21 【问题描述】:我想检查日期键是否已经存在然后显示 Toast else 上传出勤。如果出勤子键已经存在..
DBreference.addChildEventListener(new ChildEventListener()
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s)
//i want to check if data is available along with the key which is "date".
//then show msg data already exists else upload the attendance
date = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()).format(new Date());
String present = "Present";
DBreference.child("Attendance").child(date).setValue(present);
Toast.makeText(ProfileAct.this, "Marked as Present", Toast.LENGTH_SHORT).show();
@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s)
@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot)
@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s)
@Override
public void onCancelled(@NonNull DatabaseError databaseError)
);
【问题讨论】:
好的。对不起.. 【参考方案1】:试试这个
FirebaseDatabase.getInstance().getReference().child("Users").child(FirebaseAuth.getInstance().getUid()).addValueEventListener(new ValueEventListener()
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot)
if (dataSnapshot.exists())
if (dataSnapshot.child("Attendance").exists())
Toast.makeText(ProfileAct.this, "Already Exists", Toast.LENGTH_SHORT).show();
else
date = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()).format(new Date());
String present = "Present";
dataSnapshot.child("Attendance").child(date).setValue(present);
@Override
public void onCancelled(@NonNull DatabaseError databaseError)
);
希望对你有帮助!
谢谢。
【讨论】:
【参考方案2】: AttendRef.addValueEventListener(new ValueEventListener()
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot)
if (dataSnapshot.exists())
Toast.makeText(ProfileAct.this, "Already Exists", Toast.LENGTH_SHORT).show();
else
String val="Present";
AttendRef.child(date).setValue(val);
@Override
public void onCancelled(@NonNull DatabaseError databaseError)
);
【讨论】:
以上是关于获取现有的 firebase 子密钥的主要内容,如果未能解决你的问题,请参考以下文章