gpt4 book ai didi

java - 保存并读取整数 Firestore Android

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:55:57 26 4
gpt4 key购买 nike

我正在尝试为我的 Android 游戏创建一个简单的统计 Activity 。我正在使用新的 Firestore 数据库。我已经能够将包含总分、最近得分、平均得分、总游戏数和高分的文档保存到我的 Firestore 数据库中,但是当我尝试从数据库中读回数据时,它返回一个空值。

public void readFromDB(){
statsDoc.get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
@Override
public void onSuccess(DocumentSnapshot documentSnapshot) {
if(documentSnapshot.exists()){
UserData userdata = documentSnapshot.toObject(UserData.class);
}
}

我的用户数据类:

/* Copyright statement */

package com.squidstudios.android.balloonpopper.utils;

import com.google.firebase.database.IgnoreExtraProperties;

/**
* UserData.java
*
* This class represents a single user's data including username, email, number of points earned,
* a saved state of their progress towards earning a single point, and their password.
*/
@IgnoreExtraProperties
public class UserData {
public String email;
public int total_points;

public int avg_score;
public int high_score;
public int total_games;
public int prev_score;

public UserData() {
// Default constructor required for calls to DataSnapshot.getValue(UserData.class)
}


public int getTotal_games() {
return total_games;
}

public void setTotal_games(int total_games) {
this.total_games = total_games;
}

public int getTotal_points() {
return total_points;
}

public void setTotal_points(int total_points) {
this.total_points = total_points;
}

public int getAvg_score() {
return avg_score;
}

public void setAvg_score(int avg_score) {
this.avg_score = avg_score;
}

public int getHigh_score() {
return high_score;
}

public void setHigh_score(int high_score) {
this.high_score = high_score;
}


public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

public int getPrev_score() {
return prev_score;
}

public void setPrev_score(int prev_score) {
this.prev_score = prev_score;
}

}

当我用字符串测试它时它工作正常但由于某些原因整数不工作。提前致谢!

最佳答案

在做了一些测试后,我得出结论,我们必须将长整数转换为整数,因为这是我们从 firestore 中获取“数字”的结果。这是我的数据:
1]

单击字段末尾的“编辑”图标,确保您存储了“数字”:


使用它来进行转换:Safely casting long to int in Java

我的代码如下所示:

int money = snapshot.getLong("money").intValue();


随时要求进一步解释!

关于java - 保存并读取整数 Firestore Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46735317/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com