首先我对firebase数据库很新。我正在研究如何从firebase检索当前的UID(当前登录)并将其插入firebase的子节点以及通过oncreate的值。
我正在尝试将mycurrent UID推向Firebase。我无法将它推向firebase。这是我的firebase结构:
(例如,UID Fo2SfEfryWEjmxr4yIQwM5LQQx2
和消防基础中的值'720'
)
尝试后,我仍然无法获取以下代码来检索UID。我在使用(new ValueEventListener()
以及此行时遇到了问题。
Map<String, Queue> data = postSnapshot.getValue(new GenericTypeIndicator<Map<String, Queue>>() {});
这是我的onCreate供参考
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());
}
});
这是我的构造函数:
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;
}
}
答案 0 :(得分:3)
您正在使用旧版Firebase Database SDK, 2.5.x。如果您刚开始使用数据库,最好使用新的9.x.x SDK,尤其是在使用新SDK的Firebase身份验证时。如果在同一版本中使用旧版和新版SDK,则可能会遇到问题。请参阅Upgrade Guide。
答案 1 :(得分:2)
您想要使用Firebase身份验证。查看此链接以设置Android应用的Firebase身份验证:
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
}