Как обновить представление списка из базы данных без учетных записей пользователей - PullRequest
0 голосов
/ 08 июля 2019

мое текущее приложение берет данные о клиенте, отправляет их в базу данных firebase в реальном времени, кнопка активности переключает пользователя на страницу с информацией о клиенте, где отображаются все данные в базе данных, мне интересно, возможно ли обновить определенных пользователейбез использования аутентификации, чтобы войти как владелец магазина, используя это приложение, а не клиентов.

Все видео, которые я нашел, используют аутентификацию firebase, которая позволяет обновлять данные пользователя, но мое приложение перечисляет все данные базы данных как нет.specfic вошел в систему пользователя.

ниже мой класс, который получает информацию о базе данных и отображает ее на экране

public class CustomerDataRetrieved extends AppCompatActivity {

    private ListView listView;
    DatabaseReference databaseReference;
    Firebase firebase;
    List<CustomerName> customerNameList;
    public static final String Database_Path = "Customer Details";


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_customer_data_retrieved);


        listView = (ListView) findViewById(R.id.list_view);

        firebase = new Firebase(Firebase_Server_URL);

        databaseReference = FirebaseDatabase.getInstance().getReference(Database_Path);

        customerNameList = new ArrayList<>();



    }

    @Override
    protected void onStart() {
        super.onStart();
        databaseReference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                for (DataSnapshot customerSnapshot : dataSnapshot.getChildren()) {

                    CustomerName customers = customerSnapshot.getValue(CustomerName.class);
                    customerNameList.add(customers);
                }
                CustomerInfoAdapter customerInfoAdapter = new CustomerInfoAdapter(CustomerDataRetrieved.this,customerNameList);
                listView.setAdapter(customerInfoAdapter);

            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });
    }
}

Если это помогает, это изображение моей деятельности по информированию клиентов, которая используетпросмотр списка для отображения всех данных из базы данных, и мне интересно, если это возможно, чтобы обновить конкретную информацию от каждого пользователя, если требуется через мое приложение, например, если клиенты указали цену изменилась, или изменился контактный номер

1 Ответ

0 голосов
/ 08 июля 2019

Чтобы обновить определенный узел в базе данных, вам нужно знать что-то, что идентифицирует этот узел.При хранении пользовательских данных это, как правило, UID пользователя.Но если вы не используете Firebase Authentication, это может быть что-то еще, что идентифицирует пользователя (ей), чей узел вы хотите обновить.

В дополнение к знанию пути у вас также должно быть разрешение на обновлениеузел.Вот почему вы часто видите, как используется UID Firebase Authentication, поскольку он позволяет защитить доступ к данным на основе того, кем является пользователь.Если вы не используете Firebase Authentication, вам придется придумать другую схему для защиты ваших данных.

...