然而现在我从FireBase一次获取所有数据.我想做什么,一次获取LIMITS中的数据,如15条记录.就像在第一次用户从中获取15条记录Firebase时,当用户在屏幕的底部/顶部加载更多数据时,应该有15条记录来自Firebase并添加到列表的底部/ TOP.
我已经实现了逻辑,以便从数据库的顶部或底部获取15条记录,Firebase如下所示: -
public class ChatActivity extends AppCompatActivity implements FirebaseAuth.AuthStateListener {
private FirebaseAuth mAuth;
private DatabaseReference mChatRef;
private Query postQuery;
private String newestPostId;
private String oldestPostId;
private int startAt = 0;
private SwipeRefreshLayout swipeRefreshLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_chat);
mAuth = FirebaseAuth.getInstance();
mAuth.addAuthStateListener(this);
mChatRef = FirebaseDatabase.getInstance().getReference();
mChatRef = mChatRef.child("chats");
/////GETTING THE VIEW ID OF SWIPE LAYOUT
swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipeRefreshLayout);
/////GETTING FIRST 10 RECORDS …Run Code Online (Sandbox Code Playgroud) android firebase firebase-realtime-database firebase-storage
我在这个设置中使用了实时数据库:
->users
->uid
->name
->email
->other info
Run Code Online (Sandbox Code Playgroud)
如果我想保存用户数据,我会使用我的User类,然后在数据库中设置对象,如下所示:
//assume variables have already been declared...
mFirebaseAuth = FirebaseAuth.getInstance();
mFirebaseUser = mFirebaseAuth.getCurrentUser();
User user = new User(name, email, other values...);
mDBRef.child("users").child(mFirebaseUser.getUid()).setValue(user);
Run Code Online (Sandbox Code Playgroud)
我试过了,它工作正常.
但是如何从数据库中检索这些值?例如,一旦我设置了如上所示的User对象,我可能想要检索用户的电子邮件.我并不是指通过登录提供商收到电子邮件.我希望通过实时数据库发送电子邮件.我已经尝试了一段时间了,但文档没有多大帮助.它显示的是设置监听器以等待数据的更改.但我不是在等待改变,我不想要听众.我想通过使用JSON树中的键直接获取数据库中的值.这可以通过实时数据库吗?如果是这样,怎么办呢,因为文档没有解释它或者我只是不理解它.如果不可能,我应该使用存储数据库还是其他什么?谢谢.