Как использовать Push () для сохранения нескольких записей в Firebase без конфликта записи? - PullRequest
0 голосов
/ 10 октября 2018

Я не слишком знаком с использованием объектов словаря и пытаюсь использовать этот код для сохранения некоторой базовой информации в базе данных Firebase, когда пользователь создает новую учетную запись.Пока это то, что у меня есть, но оно не записывает никаких данных.Может ли это быть из-за того, что мне уже нужно создать каталог в базе данных, или что-то еще происходит?

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

public class User
{
    public string uid;
    public string email;
    public int round = 1;
    public int lives = 3;
    public int level = 1;
    public int currentScore = 0;
    public int totalScore = 0;

    public User()
    {
    }

    public User(string uid, string email, int round, int lives, int level, int currentScore, int totalScore)
    {
        this.uid = FirebaseLogin.currentUserId;
        this.email = FirebaseLogin.currentEmail;
        this.round = round;
        this.lives = lives;
        this.level = level;
        this.currentScore = currentScore;
        this.totalScore = totalScore;
    }

    public Dictionary<string, Object> ToDictionary()
    {
        Dictionary<string, Object> result = new Dictionary<string, Object>();
        result["uid"] = uid;
        result["email"] = email;
        result["round"] = round;
        result["lives"] = lives;
        result["level"] = level;
        result["currentScore"] = currentScore;
        result["totalScore"] = totalScore;

        return result;
    }
}

public void AddNewUserData(string uid, string email, int round, int lives, int level, int currentScore, int totalScore)
{
    DatabaseReference reference = Firebase.Database.FirebaseDatabase.DefaultInstance.RootReference;
    string key = reference.Child("users").Push().Key;
    User entry = new User(uid, email, round, lives, level, currentScore, totalScore);
    Dictionary<string, Object> entryValues = entry.ToDictionary();
    Dictionary<string, Object> childUpdates = new Dictionary<string, Object>();
    childUpdates["/test1/" + key] = entryValues;
    childUpdates["/test2/" + uid + "/" + key] = entryValues;

    reference.UpdateChildrenAsync(childUpdates);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...