データの取得:
データベースでは、を使用して生成されたランダムIDを使用しpush()
ているため、データを取得する場合は、次の手順を実行します。
AndroidアプリでFirebaseを使用する:
DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("users");
ref.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot datas : dataSnapshot.getChildren()) {
String name=datas.child("name").getValue().toString();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
JavaScriptでのFirebaseの使用:
firebase.database().ref().child("users").on('value', function (snapshot) {
snapshot.forEach(function(childSnapshot) {
var name=childSnapshot.val().name;
});
});
ここにスナップショット(データの場所)があり、users
すべてのランダムID内でループして名前を取得します。
特定のユーザーのデータを取得する:
ここで、特定のユーザーのみの情報を取得する場合は、クエリを追加する必要があります。
AndroidアプリでFirebaseを使用する:
DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("users");
Query queries=ref.orderByChild("name").equalTo("Alex");
queries.addListenerForSingleValueEvent(new ValueEventListener() {...}
JavaScriptでのFirebaseの使用
firebase.database().ref().child("users").orderByChild("name").equalTo("Alex").on('value', function (snapshot) {
snapshot.forEach(function(childSnapshot) {
var name=childSnapshot.val().name;
});
});
使用することは、アレックスに関連するデータを取得するorderByChild("name").equalTo("Alex")
ように言うwhere name="Alex"
ようなものです。
最良の方法:
最善の方法は、Firebase Authenticationを使用して、ユーザーごとに一意のIDを生成し、ランダムIDの代わりに使用することpush()
です。これにより、IDがあり、簡単にアクセスできるため、すべてのユーザーをループする必要がありません。
最初に、ユーザーはサインインする必要があります。次に、一意のIDを取得し、リスナーをアタッチして、そのユーザーの他のデータを取得できます。
AndroidでのFirebaseの使用:
DatabaseReference ref = FirebaseDatabase.getInstance().getReference("users");
String uid = FirebaseAuthentication.getInstance().getCurrentUser().getUid();
ref.child(uid).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String name=dataSnapshot.child("name").getValue().toString();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
JavaScriptでFirebaseを使用する:
var user = firebase.auth().currentUser;
var uid=user.uid;
firebase.database().ref().child("users").child(uid).on('value', function (snapshot) {
var name=snapshot.val().name;
});