таблица firebase список всех пользователей - PullRequest
0 голосов
/ 03 июня 2018

Как будет выглядеть структура базы данных, похожая на игру?где пользователи могут играть, а я сохраняю время и т.д.*

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

Ответы [ 2 ]

0 голосов
/ 03 июня 2018

Вам не нужна таблица только для ранжирования магазина, если ваш пользователь USER имеет правильные свойства.Пример:

КЛАСС

public class UserData {
    //------PROPERTIES-------
    private String id;
    private String nickname;
    private int points;
    private int level;
    private String email;
}
...

ДЕЯТЕЛЬНОСТЬ

private final DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference();
private final DatabaseReference userReference = databaseReference.child("Users");

/** --SAVING USER--
* * THIS METHOD INSERT OBJECT USER IN DATABASE
* **/
private void insertNewUser(String id, String nickname, String email, int points, int level)
{
try {
    UserData userdata = new UserData(id, name, nickname, email, points);
    userReference.child(id).setValue(userdata);
    }catch (Exception e)
    {
         e.printStackTrace();
    }
}

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

rankingRef.orderBy("level").orderBy("points");

/**
* RETRIEVE DATA
* */
    public void loadUsers(final int level)
    {
        final List<UserData> userList = new ArrayList<UserData>();
        if(userList.size() > 0)
        {
            userList.clear();
        }

        //--INITIALIZE--
        userListRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                Iterable<DataSnapshot> children = dataSnapshot.getChildren();

                for(DataSnapshot child: children)
                {
                        UserData user = child.getValue(UserData.class);
                        userList.add(user);
                }
            }
            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });
    }
0 голосов
/ 03 июня 2018

Ваша структура данных Firebase для ранжирования будет выглядеть так:

Ranking
  -- level 1
       -- 1  // top list for level 1
           -- name -> username1 (value)// user details, point and name, can be store more details.
           -- point -> 300
       -- 2        
           -- name -> username2
           -- point -> 260
       ......

  -- level 2
       -- 1 // 1st user
           -- name -> username1
           -- point -> 280
       -- 2 // 2nd user   
           -- name -> username2    
           -- point -> 240
       ......

  -- level 3
       -- 1
           -- name -> username1  
           -- point -> 230
       -- 2        
           -- name -> username2   
           -- point -> 200
       ......
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...