我在firebase中有一个数据库,该数据库用于保存用户数据,并且能够将其添加到最多10位(从零开始)的帐户数据,但是在此之后,我每次调用该函数将其添加到数据库不会显示在Firebase中。我正在Unity中使用它进行游戏。这是函数调用。
`
public void populateDatabase()
{
//populate static account data
accountData _thisaccount = new accountData();
_thisaccount.accName = account.instance.NickName();
_thisaccount.accEmail = Playeraccount._this.getUserEmail();
_thisaccount.accCash = 100;
_thisaccount.accGem = 100;
//Ranking Values
_thisaccount.Rank = 0;
//rookie
_thisaccount.RookieRank = 0;
_thisaccount.RookieAverage = 0;
_thisaccount.RookieScoreone = 0;
_thisaccount.RookieScoreTwo = 0;
_thisaccount.RookieScoreThree = 0;
//Amature
_thisaccount.AmatureRank = 0;
_thisaccount.AmatureAverage = 0;
_thisaccount.AmatureScoreone = 0;
_thisaccount.AmatureScoreTwo = 0;
_thisaccount.AmatureScoreThree = 0;
//Semi
_thisaccount.SemiProRank = 0;
_thisaccount.SemiAverage = 0;
_thisaccount.SemiProScoreone = 0;
_thisaccount.SemiProScoreTwo = 0;
_thisaccount.SemiProScoreThree = 0;
//Pro
_thisaccount.ProRank = 0;
_thisaccount.ProAverage = 0;
_thisaccount.ProScoreone = 0;
_thisaccount.ProScoreTwo = 0;
_thisaccount.ProScoreThree = 0;
_thisaccount.accTricks = account.instance.ReturnTricks();
string tName = _thisaccount.getaccName();
Debug.Log("Name: " + tName + " account " + _thisaccount.accTricks.Length);
Debug.Log("Email: " + _thisaccount.accEmail);
Debug.Log("Cash: " + _thisaccount.accCash);
Debug.Log("Attempt to fill Database info");
ConstuctDatabase(usersdb,_thisaccount);
}
private void ConstuctDatabase(DatabaseReference accountRef,accountData _thisaccount)
{
int num = 0;
accountRef.RunTransaction(MutableData =>
{
num++;
List<object> account = MutableData.Value as List<object>;
if (account == null)
{
account = new List<object>();
}
else
{
Debug.Log("continue");
}
Dictionary<string,object> newaccount =
new Dictionary<string,object>();
newaccount["accountName"] = _thisaccount.accName;
newaccount["accountEmail"] = _thisaccount.accEmail;
newaccount["Cash"] = _thisaccount.accCash;
newaccount["Gem"] = _thisaccount.accGem;
//Ranking Values
newaccount["Rank"] = _thisaccount.Rank;
//rookie
newaccount["RookieRank"] = _thisaccount.RookieRank;
newaccount["RookieAverage"] = _thisaccount.RookieAverage;
newaccount["RookieScoreone"] = _thisaccount.RookieScoreone;
newaccount["RookieScoreTwo"] = _thisaccount.RookieScoreTwo;
newaccount["RookieScoreThree"] = _thisaccount.RookieScoreThree;
//Amature
newaccount["AmateurRank"] = _thisaccount.AmatureRank;
newaccount["AmateurAverage"] = _thisaccount.AmatureAverage;
newaccount["AmateurScoreone"] = _thisaccount.AmatureScoreone;
newaccount["AmateurScoreTwo"] = _thisaccount.AmatureScoreTwo;
newaccount["AmateurScoreThree"] = _thisaccount.AmatureScoreThree;
//Semi
newaccount["SemiProRank"] = _thisaccount.SemiProRank;
newaccount["SemiProAverage"] = _thisaccount.SemiAverage;
newaccount["SemiProScoreone"] = _thisaccount.SemiProScoreone;
newaccount["SemiProScoreTwo"] = _thisaccount.SemiProScoreTwo;
newaccount["SemiProScoreThree"] = _thisaccount.SemiProScoreThree;
//Pro
newaccount["ProRank"] = _thisaccount.ProRank;
newaccount["ProAverage"] = _thisaccount.ProAverage;
newaccount["ProScoreone"] = _thisaccount.ProScoreone;
newaccount["ProScoreTwo"] = _thisaccount.ProScoreTwo;
newaccount["ProScoreThree"] = _thisaccount.ProScoreThree;
//Trick Logic]
Dictionary<string,bool> newTricks =
new Dictionary<string,bool>();
int i = 0;
while (i < _thisaccount.accTricks.Length)
{
newTricks["Trick" + i] = _thisaccount.accTricks[i]._owned;
i++;
}
newaccount["Tricklist"] = newTricks;
Debug.Log("ConstructDB1");
account.Add(newaccount);
MutableData.Value = account;
Debug.Log("ConstructDB2");
return TransactionResult.Success(MutableData);
});
}
`