答案 0 :(得分:0)
假设"用户的第一个孩子"是userId。
您可以添加"朋友"孩子就这样。
FirebaseUser currentFirebaseUser = FirebaseAuth.getInstance().getCurrentUser();
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("users").child( currentFirebaseUser.getUid()).child("friends").setValue("your First Friend");
之后你就像这样在那个孩子上实现这些方法。
myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// This method is called once with the initial value and again
// whenever data at this location is updated.
String value = dataSnapshot.getValue(String.class);
Log.d(TAG, "Value is: " + value);
}
@Override
public void onCancelled(DatabaseError error) {
// Failed to read value
Log.w(TAG, "Failed to read value.", error.toException());
}
});
阅读firebase Here
的文档答案 1 :(得分:0)
如果getUid正在获取trobule,请尝试查看它是否为null或数据库中是否相等。如果是正确的,将其转换为私有字符串并放入DatabaseReference。
String userKey = FirebaseAuth.getInstance().getCurrentUser().getUid();
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("users").child( userKey).child("friends").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String value = datasnapshot.getValue(String.class);
//verifiy if has something in the friendList and put value if has
if(value != null) {
myRef.setValue("My new FRRIIIEEEND);
}
};
@Override
public void onCancelled(DatabaseError databaseError) {
}
我认为它应该可以帮助你这个代码
答案 2 :(得分:0)
通常当我需要存储列表时,我会使用List<>
中的java.util
来执行此操作。如果您使用名为 GenericTypeIndicator
的内容,则可以直接输入要自动序列化到Firebase数据库中的自定义Java对象。
让我们说你的朋友&#34; list是User
个对象的集合。我会做这样的事情:
DatabaseReference myRef = database.getReference("users").child( currentFirebaseUser.getUid()).child("friends");
myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
GenericTypeIndicator<List<User>> genericTypeIndicator =new GenericTypeIndicator<List<User>>(){};
List<User> friends = dataSnapshot.getValue(genericTypeIndicator);
// Check if friends list exists
if(friends == null){
// Create list
friends = new ArrayList<User>();
}
// Add new user
friends.add(youUserHere);
// Set updated friends list
database.getReference("users").child( currentFirebaseUser.getUid()).child("friends").setValue(friends);
}
@Override
public void onCancelled(DatabaseError error) {
// Failed to read value
Log.w(TAG, "Failed to read value.", error.toException());
}
});