Как получить доступ к массиву firebase - PullRequest
0 голосов
/ 28 мая 2020

Как получить доступ к массиву отпечатков пальцев в Android? Я не знаю, что делать.

DatabaseReference dbTITO = FirebaseDatabase.getInstance().getReference("Employee/2/fingerprint");
dbTITO.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot)  {
        if (dataSnapshot.exists()) {
            byte[] imageFinger = dataSnapshot.child("fingerprint").getValue();

        } 
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
    }
});

введите описание изображения здесь Код сотрудника 2: 2 имя_отдела: отпечаток пальца «Убийца» 0: 0 1: 248 2: 126 3: 1 4: 200 5: 42 6: 227

1 Ответ

0 голосов
/ 28 мая 2020

Пока вы используете ссылку, подобную этой Employee/2/fingerprint, нет необходимости снова звонить child("fingerprint"). Чтобы решить эту проблему, используйте следующие строки кода:

DatabaseReference fingerprintRef = rootRef.child("Employee").child("2").child("fingerprint");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        long count = dataSnapshot.getChildrenCount();
        byte[] bytes = new byte[(int) count];
        int count = 0;
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            long value = ds.getValue(Long.class);
            bytes[count] = (byte) value;
            count++;
        }

        //Do what you need to do with your array
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d("TAG", databaseError.getMessage()); //Don't ignore errors!
    }
};
fingerprintRef.addListenerForSingleValueEvent(valueEventListener);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...