2016-11-14 15 views
2

最初にオフFirebaseデータベースは初めてです。私は現在のUID(現時点ではログインしている)をfirebaseから取得し、それをoncreateを通してすべての値と共にFirebaseの子に挿入する方法を探しています。firebaseからUIDを取得し、firebaseデータベースの子に追加する方法

私はmycurrent UIDをプッシュしようとしています。その値はFirebaseにあります。私はそれをfirebaseに押し込むのに問題があります。ここに私のfirebase構造である:

(例えば、UID Fo2SfEfryWEjmxr4yIQwM5LQQx2と値火災ベースで'720'

を試した後、私はまだUIDを取得するには、次のコードを取得することができません。 (new ValueEventListener()とこの行に問題があります。あなたはFirebase認証を使用したい

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; 
    } 
} 

答えて

2

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です。あなたのAndroid AppのFirebase認証を設定するには、このリンクをチェックアウト:

https://firebase.google.com/docs/auth/android/manage-users

https://firebase.google.com/docs/auth/android/start/

このリンクを使用すると、ユーザを管理し、現在のユーザーのUIDを取得する方法をお見せするのに役立ちます

Firebase認証を設定したら、このコードを使用して現在のユーザのUIDを取得します。

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); 
if (user != null) { 
    String UID = user.getUid(); 
} else { 
    // No user is signed in 
} 
+0

返信いただきありがとうございます。私はずっと前にfirebase authを設定しました。しかし、私は店に持っている価値と一緒にfirebase dbにuidを送り返すことに問題があります。 –

3

レガシーFirebase Database SDK, 2.5.xを使用しています。データベースを使い始めたばかりの方は、特に新しいSDKのFirebase認証を使用している場合は、新しい9.x.x SDKを使用する方がよいでしょう。同じビルドで古いSDKと新しいSDKを使用すると、問題が発生する可能性があります。 Upgrade Guideを参照してください。

+0

ありがとうございます。 firebase-auth:9.8.0 ' コンパイル' com.google.firebase:firebase-database:9.8.0'' –

+0

あなたが投稿したコードがあれば、あなたはあなたのビルドの依存関係に 'com.firebase:firebase-client-android:2.5.x''も' compile 'しています。これは従来のSDKです。 –

+0

これは、特定のことがうまくいかないことを説明します。気づいてくれてありがとう。しかし、最新の '' com.google.firebase:firebase-database:9.8.0'は私が変更したものを店頭に置くことができますか? –

関連する問題