如何从Firebase中检索UID并将其添加到Firebase的子项目DB
首先我对firebase数据库非常陌生。我正在研究如何从firebase中检索当前的UID(即currenty登录到的),并通过oncreate将其插入到firebase的子项以及值中。如何从Firebase中检索UID并将其添加到Firebase的子项目DB
我试图推送mycurrent UID,它对Firebase有价值。我无法将其推送到Firebase。这里是我的火力结构:
(例如,UID
Fo2SfEfryWEjmxr4yIQwM5LQQx2
和消防基础价值'720'
)
尝试后,我仍然无法得到以下代码来检索UID。我在(new ValueEventListener()
以及这条线路上遇到了问题。
Map<String, Queue> data = postSnapshot.getValue(new GenericTypeIndicator<Map<String, Queue>>() {});
这里是我的参考
mRef = new Firebase("https://sunwayfinancequeue.firebaseio.com/");
mRef.child("UserQueue");
mRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
for (DataSnapshot postSnapshot : snapshot.getChildren()) {
Queue queue = postSnapshot.getValue(Queue.class);
System.out.println(Queue.getTotalqueue() + " - " + Queue.getServingqueue());
Map<String, Queue> data = postSnapshot.getValue(new GenericTypeIndicator<Map<String, Queue>>() {});
Map.Entry<String, Queue> entry = data.entrySet().iterator().next();
String uid = entry.getKey();
Log.d("Firebase UID ", uid);
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
System.out.println("The read failed: " + firebaseError.getMessage());
}
});
的onCreate这里是我的构造函数:
public class Queue {
private static double servingqueue;
private static double totalqueue;
private static String uid;
public Queue(Double servingqueue, Double totalqueue) {
Queue.servingqueue = servingqueue;
Queue.totalqueue = totalqueue;
}
public static double getServingqueue() {
return servingqueue;
}
public static void setServingqueue(double servingqueue) {
Queue.servingqueue = servingqueue;
}
public static double getTotalqueue() {
return totalqueue;
}
public static void setTotalqueue(double totalqueue) {
Queue.totalqueue = totalqueue;
}
public static String getUid() {
return uid;
}
public static void setUid(String uid) {
Queue.uid = uid;
}
}
你想用火力地堡认证。看看这个链接来设置火力地堡认证为您的Android应用程序:
https://firebase.google.com/docs/auth/android/start/
此链接将帮助您管理的用户,并告诉你如何获得当前用户的UID:
https://firebase.google.com/docs/auth/android/manage-users
设置好Firebase身份验证后,您可以使用这段代码来获取当前用户的UID。
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user != null) {
String UID = user.getUid();
} else {
// No user is signed in
}
您正在使用旧版Firebase Database SDK, 2.5.x。如果您刚刚开始使用数据库,最好使用新的9.x.x SDK,尤其是在您使用新SDK中的Firebase身份验证时。如果您在同一版本中使用旧版和新版SDK,则可能会遇到问题。请参阅Upgrade Guide。
谢谢。我正在使用最新的'compile'com.google.firebase:firebase-auth:9.8.0' compile'com.google.firebase:firebase-database:9.8.0'' –
但是,考虑到您发布的代码,您必须在你的构建依赖中也有'compile'com.firebase:firebase-client-android:2.5.x''。这是传统的SDK。 –
这将解释某些事情不起作用。感谢您的注意。但是,最新的'com.google.firebase:firebase-database:9.8.0'能否让我在商店中进行更改? –
感谢您的回复,我设置了不久前的Firebase身份验证。但我遇到了将uid发送回firebase db的问题以及我在商店中存储的值。 –