Android 从Firebase数据库检索值

Android 从Firebase数据库检索值,android,firebase,Android,Firebase,我正在尝试从firebase数据库中为Android应用程序检索一些值。我可以正确上传,但无法在列表视图中显示数据。我没有得到任何错误,但数据没有显示 从上传AddPostActivity.class private EditText mPostTitle; private EditText mPostDescription; private Button mPostSend; private String mPhoneNo; private String mUsername; priva

我正在尝试从firebase数据库中为Android应用程序检索一些值。我可以正确上传,但无法在列表视图中显示数据。我没有得到任何错误,但数据没有显示

从上传
AddPostActivity.class

private EditText mPostTitle;
private EditText mPostDescription;
private Button mPostSend;

private String mPhoneNo;
private String mUsername;

private FirebaseDatabase mFirebaseDatabase;
private DatabaseReference mMessageDatabaseReference;
private ChildEventListener mMessageChildEventListener;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_add_post);

    mPhoneNo = loadSignIn();

    mFirebaseDatabase = FirebaseDatabase.getInstance();
    mFirebaseAuth = FirebaseAuth.getInstance();
    mFirebaseStorage = FirebaseStorage.getInstance();

    mMessageDatabaseReference = mFirebaseDatabase.getReference().child("message");

    mPostTitle = findViewById(R.id.title_appPostActivity);
    mPostDescription = findViewById(R.id.description_addPostActivity);
    mPostSend = findViewById(R.id.sendPost_appPostActivity);

    mPostSend.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            String key = mMessageDatabaseReference.push().getKey();
            PostContent postContent = new PostContent(mPostTitle.getText().toString(), mPostDescription.getText().toString(), key);
            mMessageDatabaseReference.push().setValue(postContent);
        }
    });
}
private String mPhoneNo;
private PostAdapter mPostAdapter;
private DatabaseReference mDatabaseReferance;
private ListView mListView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_party_list);

    mDatabaseReferance = FirebaseDatabase.getInstance().getReference();
    mDatabaseReferance = mDatabaseReferance.child("message");

    mListView = findViewById(R.id.post_ListView);

    List<PostContent> postContents = new ArrayList<>();
    mPostAdapter = new PostAdapter(this, R.layout.post_content, postContents);
    mListView.setAdapter(mPostAdapter);

    mDatabaseReferance.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {

            PostContent content = dataSnapshot.getValue(PostContent.class);
            mPostAdapter.add(content);
        }

        @Override
        public void onChildChanged(DataSnapshot dataSnapshot, String s) {

        }

        @Override
        public void onChildRemoved(DataSnapshot dataSnapshot) {

        }

        @Override
        public void onChildMoved(DataSnapshot dataSnapshot, String s) {

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });
}
public class PostAdapter extends ArrayAdapter<PostContent> {

public PostAdapter(Context context, int resource, List<PostContent> object) {
    super(context, resource, object);
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    if (convertView == null) {
        convertView = ((Activity) getContext()).getLayoutInflater().inflate(R.layout.post_content, parent, false);
    }

    TextView title = convertView.findViewById(R.id.title_postContent);
    TextView description = convertView.findViewById(R.id.description_postContent);

    PostContent object = getItem(position);

    title.setText(object.getTitle());
    description.setText(object.getDescription());
    return convertView;
}
public class PostContent {

private String mTitle;
private String mDescription;
private String mKey;

public PostContent(){}

public PostContent(String title, String description, String key) {
    mTitle = title;
    mDescription = description;
    mKey = key;
}

public String getTitle(){ return mTitle; }

public String getDescription() {
    return mDescription;
}

public String getKey() { return mKey; }
}
PartyStactivity.class中检索

private EditText mPostTitle;
private EditText mPostDescription;
private Button mPostSend;

private String mPhoneNo;
private String mUsername;

private FirebaseDatabase mFirebaseDatabase;
private DatabaseReference mMessageDatabaseReference;
private ChildEventListener mMessageChildEventListener;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_add_post);

    mPhoneNo = loadSignIn();

    mFirebaseDatabase = FirebaseDatabase.getInstance();
    mFirebaseAuth = FirebaseAuth.getInstance();
    mFirebaseStorage = FirebaseStorage.getInstance();

    mMessageDatabaseReference = mFirebaseDatabase.getReference().child("message");

    mPostTitle = findViewById(R.id.title_appPostActivity);
    mPostDescription = findViewById(R.id.description_addPostActivity);
    mPostSend = findViewById(R.id.sendPost_appPostActivity);

    mPostSend.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            String key = mMessageDatabaseReference.push().getKey();
            PostContent postContent = new PostContent(mPostTitle.getText().toString(), mPostDescription.getText().toString(), key);
            mMessageDatabaseReference.push().setValue(postContent);
        }
    });
}
private String mPhoneNo;
private PostAdapter mPostAdapter;
private DatabaseReference mDatabaseReferance;
private ListView mListView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_party_list);

    mDatabaseReferance = FirebaseDatabase.getInstance().getReference();
    mDatabaseReferance = mDatabaseReferance.child("message");

    mListView = findViewById(R.id.post_ListView);

    List<PostContent> postContents = new ArrayList<>();
    mPostAdapter = new PostAdapter(this, R.layout.post_content, postContents);
    mListView.setAdapter(mPostAdapter);

    mDatabaseReferance.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {

            PostContent content = dataSnapshot.getValue(PostContent.class);
            mPostAdapter.add(content);
        }

        @Override
        public void onChildChanged(DataSnapshot dataSnapshot, String s) {

        }

        @Override
        public void onChildRemoved(DataSnapshot dataSnapshot) {

        }

        @Override
        public void onChildMoved(DataSnapshot dataSnapshot, String s) {

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });
}
public class PostAdapter extends ArrayAdapter<PostContent> {

public PostAdapter(Context context, int resource, List<PostContent> object) {
    super(context, resource, object);
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    if (convertView == null) {
        convertView = ((Activity) getContext()).getLayoutInflater().inflate(R.layout.post_content, parent, false);
    }

    TextView title = convertView.findViewById(R.id.title_postContent);
    TextView description = convertView.findViewById(R.id.description_postContent);

    PostContent object = getItem(position);

    title.setText(object.getTitle());
    description.setText(object.getDescription());
    return convertView;
}
public class PostContent {

private String mTitle;
private String mDescription;
private String mKey;

public PostContent(){}

public PostContent(String title, String description, String key) {
    mTitle = title;
    mDescription = description;
    mKey = key;
}

public String getTitle(){ return mTitle; }

public String getDescription() {
    return mDescription;
}

public String getKey() { return mKey; }
}
列表项内容类
PostContent.class

private EditText mPostTitle;
private EditText mPostDescription;
private Button mPostSend;

private String mPhoneNo;
private String mUsername;

private FirebaseDatabase mFirebaseDatabase;
private DatabaseReference mMessageDatabaseReference;
private ChildEventListener mMessageChildEventListener;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_add_post);

    mPhoneNo = loadSignIn();

    mFirebaseDatabase = FirebaseDatabase.getInstance();
    mFirebaseAuth = FirebaseAuth.getInstance();
    mFirebaseStorage = FirebaseStorage.getInstance();

    mMessageDatabaseReference = mFirebaseDatabase.getReference().child("message");

    mPostTitle = findViewById(R.id.title_appPostActivity);
    mPostDescription = findViewById(R.id.description_addPostActivity);
    mPostSend = findViewById(R.id.sendPost_appPostActivity);

    mPostSend.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            String key = mMessageDatabaseReference.push().getKey();
            PostContent postContent = new PostContent(mPostTitle.getText().toString(), mPostDescription.getText().toString(), key);
            mMessageDatabaseReference.push().setValue(postContent);
        }
    });
}
private String mPhoneNo;
private PostAdapter mPostAdapter;
private DatabaseReference mDatabaseReferance;
private ListView mListView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_party_list);

    mDatabaseReferance = FirebaseDatabase.getInstance().getReference();
    mDatabaseReferance = mDatabaseReferance.child("message");

    mListView = findViewById(R.id.post_ListView);

    List<PostContent> postContents = new ArrayList<>();
    mPostAdapter = new PostAdapter(this, R.layout.post_content, postContents);
    mListView.setAdapter(mPostAdapter);

    mDatabaseReferance.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {

            PostContent content = dataSnapshot.getValue(PostContent.class);
            mPostAdapter.add(content);
        }

        @Override
        public void onChildChanged(DataSnapshot dataSnapshot, String s) {

        }

        @Override
        public void onChildRemoved(DataSnapshot dataSnapshot) {

        }

        @Override
        public void onChildMoved(DataSnapshot dataSnapshot, String s) {

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });
}
public class PostAdapter extends ArrayAdapter<PostContent> {

public PostAdapter(Context context, int resource, List<PostContent> object) {
    super(context, resource, object);
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    if (convertView == null) {
        convertView = ((Activity) getContext()).getLayoutInflater().inflate(R.layout.post_content, parent, false);
    }

    TextView title = convertView.findViewById(R.id.title_postContent);
    TextView description = convertView.findViewById(R.id.description_postContent);

    PostContent object = getItem(position);

    title.setText(object.getTitle());
    description.setText(object.getDescription());
    return convertView;
}
public class PostContent {

private String mTitle;
private String mDescription;
private String mKey;

public PostContent(){}

public PostContent(String title, String description, String key) {
    mTitle = title;
    mDescription = description;
    mKey = key;
}

public String getTitle(){ return mTitle; }

public String getDescription() {
    return mDescription;
}

public String getKey() { return mKey; }
}

更改与firebase属性类似的成员变量

public class PostContent {

    private String title;
    private String description;
    private String key;

    //...
    }

更改与firebase属性类似的成员变量

public class PostContent {

    private String title;
    private String description;
    private String key;

    //...
    }
DatabaseReference-databaseRef=FirebaseDatabase.getInstance().getReference(“[your dbreference]”);
字符串输入=“G”;
DatabaseReference messages=databaseRef.child(“message”);
Query messageQuery=cities.orderByKey().startAt(输入).endAt(输入+“\uf8ff”);
messageQuery.addValueEventListener(新的ValueEventListener(){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
列表消息=新建ArrayList();
对于(DataSnapshot postSnapshot:DataSnapshot.getChildren()){
添加(“[write your classs here]get your object value here”);
}
System.out.println(消息);
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){
}
});
DatabaseReference-databaseRef=FirebaseDatabase.getInstance().getReference(“[your dbreference]”);
字符串输入=“G”;
DatabaseReference messages=databaseRef.child(“message”);
Query messageQuery=cities.orderByKey().startAt(输入).endAt(输入+“\uf8ff”);
messageQuery.addValueEventListener(新的ValueEventListener(){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
列表消息=新建ArrayList();
对于(DataSnapshot postSnapshot:DataSnapshot.getChildren()){
添加(“[write your classs here]get your object value here”);
}
System.out.println(消息);
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){
}
});

是的,工作正常。我从来没有这样想过。谢谢是的,很好用。我从来没有这样想过。非常感谢。