gpt4 book ai didi

android - 社交网络 - 使用 firebase 数据库关注功能

转载 作者:太空狗 更新时间:2023-10-29 14:44:29 26 4
gpt4 key购买 nike

我正在建立一个像 Instagram 这样的社交网络。我以前在许多社交网络上工作过,使用的是 mySQL。我是 Firebase 服务器的新手。

我想通过名称搜索用户,并希望在 ListView 中显示关注/关注按钮。但是我对以标准格式运行 android firebase 查询有点困惑。我不想运行不必要的循环。以下是下表的数据库结构。

节点名称是followfollower_id指的是正在关注的用户,被关注的用户被称为followed_id

如何使用 android firebase 编写一个简单的查询,以显示名称开头的所有用户(例如“an”)以及我是否已经关注他/她的状态。

仅供引用:我没有使用 firebase rest API。

最佳答案

How to write a simple query using android firebase to show all the users with the name starting (e.g "an") and with the status that I am already following him/her or not.

我认为您不能在单个查询中完成。

您可以尝试使用嵌套查询来实现,如下所示:

ChildEventListener childEventListener = new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {

// Retrieve the userId
User user = dataSnapshot.getValue(User.class);

ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot usersFollowedDataSnapshot) {
for ( DataSnapshot userFollowedDataSnapshot : usersFollowedDataSnapshot.getChildren() ) {

// Retrieve the follower structure
Follow follow = userFollowedDataSnapshot.getValue(Follow.class);

if ( myUserId == follow.getFollowerId() ) {
// This is a user that I'm following and which name starts with "am"
}
}
}

@Override
public void onCancelled(DatabaseError databaseError) {

}
};

Query secondQuery = mFirebaseDatabaseReference.child("follow").orderByChild("followedId").equalTo(user.getId());
secondQuery.addListenerForSingleValueEvent(valueEventListener);
}

@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) {

}
};


Query firstQuery = mFirebaseDatabaseReference.child("users").orderByChild("name").startAt("am").endAt("am\uf8ff");
firstQuery.addChildEventListener(childEventListener);

我知道这不是很简单而且看起来令人失望。它也可能很慢,但值得一试。

或者,您应该考虑以简化 Firebase 查询的方式构建数据库。查看更多关于 firebase 查询的信息,例如 herehere .

关于android - 社交网络 - 使用 firebase 数据库关注功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42220469/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com