【发布时间】:2017-04-24 02:30:13
【问题描述】:
我的 Firebase 数据库中的用户可以有朋友,即其他用户。以下是它的结构:
users
|
|---123
| |
| |---username: "Adam Sandler"
| |
| |---friendlist
| |
| |---456: true
| |
| |---789: true
|---456
| |
| |---username: "Chris Rock"
|
|---789
: |
: |---username: "Kevin James"
我想将friendlist 部分加载到map 中,然后将其加载到recyclerview 中。这是来自我的片段:
FirebaseDatabaseReference = FirebaseDatabase
.getInstance()
.getReference(
FirebaseAuth.getInstance().getCurrentUser().getUid() //Lets say this equals "123"
);
mFirebaseAdapter = new FirebaseRecyclerAdapter<FriendList, FriendViewHolder>(
FriendList.class,
R.layout.friend_view,
FriendViewHolder.class,
mFirebaseDatabaseReference.child("friendlist")
) {
@Override
protected void populateViewHolder(FriendViewHolder viewHolder, FriendList model, int position) {
viewHolder.getTextView.setText(getRef(position).getKey().toString());
}
};
这是其他类:
public final class FriendViewHolder extends RecyclerView.ViewHolder{
private TextView textView;
public FriendViewHolder(View itemView) {
super(itemView);
textView = (TextView) itemView.findViewById(R.id.friendTextView);
}
public TextView getTextView() {
return textView;
}
}
和:
public class FriendList {
private Map<String, Boolean> map;
public FriendList(){}
private Map<String, Boolean> getMap(){
return map;
}
}
当我运行应用程序时,recyclerview 是空的。有什么建议我可能需要在这里做什么?
编辑:
我收到此警告:
W/FirebaseRecyclerAdapter: com.google.firebase.database.DatabaseException: Firebase Database error: Permission denied
at com.google.firebase.database.DatabaseError.toException(Unknown Source)
at com.firebase.ui.database.FirebaseRecyclerAdapter.onCancelled(FirebaseRecyclerAdapter.java:224)
at com.fishindustries.bellyflop.adapter.UserFirebaseRecyclerAdapter.onCancelled(UserFirebaseRecyclerAdapter.java:44)
at com.firebase.ui.database.FirebaseRecyclerAdapter$1.onCancelled(FirebaseRecyclerAdapter.java:108)
at com.firebase.ui.database.FirebaseArray.notifyCancelledListeners(FirebaseArray.java:124)
at com.firebase.ui.database.FirebaseArray.onCancelled(FirebaseArray.java:105)
at com.google.android.gms.internal.zzbox.zza(Unknown Source)
at com.google.android.gms.internal.zzbqv.zzZT(Unknown Source)
at com.google.android.gms.internal.zzbra$1.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
在我的 Firebase 数据库规则中,我在 /users 下设置了规则,以允许读取 auth != null 并写入 if $uid == auth.uid
【问题讨论】:
-
@FrankvanPuffelen 你能在这里输入一下吗?
标签: android firebase firebase-realtime-database