当前位置: 首页 > 知识库问答 >
问题:

Firebase@PropertyName不起作用

姬坚成
2023-03-14

故事

我在我的应用程序中使用Firebase实时数据库。我有一个像这样的模型。

class Item {
    int mItemName;
    // Simplified for brevity
}
class Item {
        @PropertyName("item_name")
        int mItemName;
        // Simplified for brevity
    }

编辑

下面是所关注的完整模型类,

public class FileModel {

        @PropertyName("file_id")
        String mFileId;
        @PropertyName("file_name")
        String mOriginalFileName;
        @PropertyName("file_path")
        String mFilePath;
        @PropertyName("file_type")
        String mFileType;
        @PropertyName("last_modified")
        Long mFileLastModified;
        @PropertyName("file_size")
        String mFileSize;
        @Exclude
        private boolean mIsSelected;

        /**
         * Must have empty constructor for JSON deserialization by Firebase
         */
        public FileModel() {
        }

        public FileModel(String fileId, String originalFileName,
                                    String filePath, String fileType, Long fileLastModified, String fileSize) {
            this.mFileId = fileId;
            this.mOriginalFileName = originalFileName;
            this.mFilePath = filePath;
            this.mFileType = fileType;
            this.mFileLastModified = fileLastModified;
            this.mFileSize = fileSize;
        }

        public String getFileId() {
            return mFileId;
        }

        public void setFileId(String fileId) {
            this.mFileId = fileId;
        }

        public String getOriginalFileName() {
            return mOriginalFileName;
        }

        public void setOriginalFileName(String originalFileName) {
            this.mOriginalFileName = originalFileName;
        }

        public String getFilePath() {
            return mFilePath;
        }

        public void setFilePath(String filePath) {
            this.mFilePath = filePath;
        }

        public String getFileType() {
            return mFileType;
        }

        public void setFileType(String fileType) {
            this.mFileType = fileType;
        }

        public Long getFileLastModified() {
            return mFileLastModified;
        }

        public void setFileLastModified(Long fileLastModified) {
            this.mFileLastModified = fileLastModified;
        }

        public String getFileSize() {
            return mFileSize;
        }

        public void setFileSize(String fileSize) {
            this.mFileSize = fileSize;
        }

        public boolean getIsSelected() {
            return mIsSelected;
        }

        public void setIsSelected(boolean isSelected) {
            this.mIsSelected = isSelected;
        }

        @Override
        public boolean equals(Object o) {
            if (this == o) return true;
            if (o == null || getClass() != o.getClass()) return false;

            FileModel model = (FileModel) o;

            if (mIsSelected != model.mIsSelected) return false;
            if (mFileId != null ? !mFileId.equals(model.mFileId) : model.mFileId != null) return false;
            if (mOriginalFileName != null ? !mOriginalFileName.equals(model.mOriginalFileName) : model.mOriginalFileName != null)
                return false;
            if (mFilePath != null ? !mFilePath.equals(model.mFilePath) : model.mFilePath != null)
                return false;
            if (mFileType != null ? !mFileType.equals(model.mFileType) : model.mFileType != null)
                return false;
            if (mFileLastModified != null ? !mFileLastModified.equals(model.mFileLastModified) : model.mFileLastModified != null)
                return false;
            return mFileSize != null ? mFileSize.equals(model.mFileSize) : model.mFileSize == null;

        }

        @Override
        public int hashCode() {
            int result = mFileId != null ? mFileId.hashCode() : 0;
            result = 31 * result + (mOriginalFileName != null ? mOriginalFileName.hashCode() : 0);
            result = 31 * result + (mFilePath != null ? mFilePath.hashCode() : 0);
            result = 31 * result + (mFileType != null ? mFileType.hashCode() : 0);
            result = 31 * result + (mFileLastModified != null ? mFileLastModified.hashCode() : 0);
            result = 31 * result + (mFileSize != null ? mFileSize.hashCode() : 0);
            result = 31 * result + (mIsSelected ? 1 : 0);
            return result;
        }

        @Override
        public String toString() {
            return "FileModel{" +
                    "mFileId='" + mFileId + '\'' +
                    ", mOriginalFileName='" + mOriginalFileName + '\'' +
                    ", mFilePath='" + mFilePath + '\'' +
                    ", mFileType='" + mFileType + '\'' +
                    ", mFileLastModified=" + mFileLastModified +
                    ", mFileSize='" + mFileSize + '\'' +
                    ", mIsSelected=" + mIsSelected +
                    '}';
        }
    }

共有1个答案

宦烈
2023-03-14

针对Kotlin数据类的解决方案:

data class Pojo (@get:PropertyName("fieldName") @set:PropertyName("fieldName") var field: String = "")
 类似资料:
  • 我使用我的应用程序设置了 Firebase 消息,但不幸的是,通知没有出现。 我正确地设置了Firebase,它连接到我的应用程序,我也发送了一些测试消息,在Firebase中它说已完成,但是我没有在我的手机上收到它们。 我的应用程序还没有上市,我正在通过Android Studio开发和测试它。 这是我的MyFirebaseInstanceIDService类 } 这里来了我的火库消息服务类:

  • 我有一个关于使用react应用程序配置firebase的问题。我将所有firebase配置信息作为环境变量放在顶部目录的.env文件中。当我尝试将它们用作<code>process.env时。REACT_APP_smth,它们都不起作用。一旦我将变量替换为真实的原始配置信息,我的应用程序就可以工作了。但可以肯定,这太危险了,所以我不想这么做。 有人知道如何解决这个问题吗??感谢您提前在这里花费的时

  • 我希望我的网站在用户输入电子邮件和密码后向用户发送电子邮件。 在我的代码中,工作正常,用户会收到一封电子邮件。 如果用户验证其电子邮件并单击 btn2,则控制台应打印“电子邮件已验证”,但不会发生这种情况。控制台始终打印“电子邮件未验证”。我也尝试了方法,但它是一样的。

  • 我目前正在开发一个Firebase聊天应用程序。我下载了一个演示并尝试完成它(http://myapptemplates.com/simple-android-chat-app-tutorial-firebase-integration/) 我可以发送和接收消息,但问题是我必须退出聊天框并重新加载它才能看到新的消息。另一件事是,所有注册用户都发送和接收相同的消息,而不是只有一个收件人和发件人。我对

  • 我已经在我的xamarin Android应用程序中实现了脸书认证,一切都很好。我从facebook获得令牌,并使用firebase rest Api的sigin方法,我能够sigin到firebase,并从firebase Api收到一个访问令牌,作为JWT。但是,当我想在我的Web Api核心上使用这个访问令牌时,它总是返回not authenticated。我的Web Api核心使用下面基于

  • 我有一个使用Firebase SimpleLogin的应用程序,但由于我有额外的用户数据,我将其存储在[my-fire base]下。firebaseio.com/users/[用户名]。下面的片段显示了它是如何完成的 由于每个单独用户的数据都是基于用户名我通过uid优先排序的,因此我可以稍后通过uid获取其他用户数据。 当firebase登录事件触发时,我有以下处理程序,负责查询firebase