![](/img/trans.png)
[英]How can I add the user to Firebase Authentication and MySQL together?
[英]How can I add a list to a user in firebase?
假设“用户”的第一个孩子是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的文档
如果getUid出现问题,请尝试查看它是否不为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) {
}
我认为这应该对您有帮助
通常,当我需要存储列表时,可以通过使用java.util
的List<>
来实现。 如果您使用名为GenericTypeIndicator
,则可以直接输入自定义Java对象,以将其自动序列化到Firebase数据库中。
假设您的“朋友”列表是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());
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.