Android - 获取基于孩子Firebase的推送密钥 [英] Android - Get push key based on a child Firebase
问题描述
{
courses:{
业务:{
PushKey_1:{
courseC:B1111,
name:Business Year 1
},
PushKey_2 :{
courseC:B2222,
name:Business Year 2
},
}
}
}
我正在尝试基于子项检索推键。代码我正在尝试:
String testCourseC =B2222;
String showCourseKey;
DatabaseReference mRef = FirebaseDatabase.getInstance()。getReference()。child(courses)。child(Business);
mRef.addValueEventListener(new DataEventListener(){
@Override
public void onDataChange(DataSnapshot dataSnapshot){
for(DataSnapshot ds:dataSnapshot.getChildren()){
CourseDetails data = ds.getValue(CourseDetails.class);
String compareC = data.getCourseC();
if(compareC.equals(testCourseC)){
showCourseKey = dataSnapshot.getKey );
}
}
}
@Override
public void onCancelled(DatabaseError databaseError){
}
});
textview1.setText(showCourseKey);
我的 CourseDetails
class:
public class CourseDetails {
private String courseC;
私人字符串名称;
$ b $ public CourseDetails(){
}
public CourseDetails(String courseC,String name){
this.courseC = courseC;
this.name = name;
}
public String getCourseC(){
return courseC;
}
public void setCourseC(String courseC){
this.courseC = courseC;
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
textview1应显示PushKey_2。如果代码是错误的,不应该textview1显示课程?
我得到了上面的代码NullPointerException。我已阅读文档,并经历了类似的问题,但仍然有这个错误。请不要介意我的愚蠢的问题
解决方案我运行你的代码,没有得到 NullPointerException
。请发布堆栈跟踪。
我会指出看起来像是一个错误。
p>
showCourseKey = dataSnapshot.getKey();
应该是:
showCourseKey = ds.getKey();
This is how my data looks like:
{
"courses":{
"Business":{
"PushKey_1":{
"courseC":"B1111",
"name":"Business Year 1"
},
"PushKey_2":{
"courseC":"B2222",
"name":"Business Year 2"
},
}
}
}
I'm trying to retrieve the push key based on a child. Code I'm trying now:
String testCourseC = "B2222";
String showCourseKey;
DatabaseReference mRef = FirebaseDatabase.getInstance().getReference().child("courses").child("Business");
mRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot ds : dataSnapshot.getChildren()){
CourseDetails data = ds.getValue(CourseDetails.class);
String compareC = data.getCourseC();
if (compareC.equals(testCourseC)){
showCourseKey = dataSnapshot.getKey();
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
textview1.setText(showCourseKey);
My CourseDetails
class:
public class CourseDetails {
private String courseC;
private String name;
public CourseDetails() {
}
public CourseDetails(String courseC, String name) {
this.courseC = courseC;
this.name = name;
}
public String getCourseC() {
return courseC;
}
public void setCourseC(String courseC) {
this.courseC = courseC;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
textview1 should display PushKey_2. If the code was wrong, shouldn't textview1 display "courses"?
I got NullPointerException from the code above. I have read the documentation and gone through similar questions, but still got this wrong. Please don't mind my silly question
解决方案 I run your code and do not get a NullPointerException
. Please post the stack trace.
I will point out what looks like an error.
This:
showCourseKey = dataSnapshot.getKey();
should be:
showCourseKey = ds.getKey();
这篇关于Android - 获取基于孩子Firebase的推送密钥的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!