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

Firebase RecyclerView:无法查询

张璞
2023-03-14

我有一个关于查询的问题,我实际上是在尝试膨胀视图,其中添加为朋友的人可以添加到回收器视图。

@Override
public void onStart(){
super.onStart();
if(EmailPref!=null){

    Log.e("SahajLOG", " EmailPref " +EmailPref);
    FriendsData er=new FriendsData();
    er.setEmailPref("sahaj9917730102@gmail");
    final Firebase mFirebaseRef = new Firebase(constants.FIREBASE_URL+"rootssahaj/authGplus");
    Query ref = mFirebaseRef.orderByChild("sahaj9917730102@gmail").equalTo("yes");


    ref.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            Log.e("SahajLOG", " dataSnapshot " + dataSnapshot);
        }

        @Override
        public void onCancelled(FirebaseError html" target="_blank">firebaseError) {

        }
    });



    FirebaseRecyclerAdapter<FriendsData,FriendsViewHolder> adapter=new FirebaseRecyclerAdapter<FriendsData, FriendsViewHolder>(
            FriendsData.class,
            R.layout.chat_view_list,
            FriendsViewHolder.class,
            ref

    ) {
        @Override
        protected void populateViewHolder(FriendsViewHolder friendsViewHolder, FriendsData s, int i) {
            friendsViewHolder.mName.setText(s.getUserNAME());
            friendsViewHolder.mStatus.setText(s.getStatus());
            Picasso.with(context).load(s.getPicurl()).transform(new CircleTransform()).into(friendsViewHolder.mImageProfile);
        }
    };

    recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
    AlphaInAnimationAdapter alphaAdapter = new AlphaInAnimationAdapter(adapter);
    alphaAdapter.setDuration(500);
    alphaAdapter.setInterpolator(new OvershootInterpolator(.5f));
    alphaAdapter.setFirstOnly(false);
    recyclerView.setAdapter(new ScaleInAnimationAdapter(alphaAdapter));


}



}

public static class FriendsViewHolder extends RecyclerView.ViewHolder{
ImageView mImageProfile;
android.widget.TextView mName;
android.widget.TextView mStatus;

public FriendsViewHolder(View itemView) {
    super(itemView);
    mImageProfile=(ImageView)itemView.findViewById(R.id.profilePICC);
    mName=(android.widget.TextView)itemView.findViewById(R.id.NameUSER);
    mStatus=(android.widget.TextView)itemView.findViewById(R.id.Status);

}


}

错误是:

原因:com。fasterxml。杰克逊。数据绑定。exc.UnrecognizedPropertyException:无法识别的字段“sahaj9917730102@gmail“(class.com.rana.sahaj.myyu.FriendsData),未标记为可忽略(5个已知属性:,”status“,”sahaj“,”picurl“,”userNAME“,”emailPref“])

我尝试了许多解决方案,因为电子邮件不一致,所以我无法在FriendsData class n中定义它,我试图将其忽略,但它表明我正在复制jackson文件

错误:任务“:app:transformResourcesWithMergeJavaResForDebug”的执行失败。通用域名格式。Android建筑应用程序编程接口。使改变TransformException:com.Android建设者包装材料DuplicateFileException:在APK META-INF/ASL2.0文件1中复制了重复文件:C:\Users\sHAJ。gradle\caches\modules-2\files-2.1\org。科德豪斯。jackson\jackson mapper asl\1.9.13\1ee2f2bed0e5dd29d1cb155a166e6f8d50bbddb7\jackson-mapper-asl-1.9.13。jar文件2:C:\Users\sHAJ。gradle\caches\modules-2\files-2.1\org。科德豪斯。jackson\jackson core asl\1.9.13\3C304D70F42F832E0A86D45BD437F6921299A4\jackson-core-asl-1.9.13。罐子`

那我该怎么办,有什么解决办法吗?

n我的Firebase数据屏幕截图

此处截图

GRADLE文件

  apply plugin: 'com.android.application'



   android {
compileSdkVersion 23
buildToolsVersion '23.0.2'

dataBinding {
    enabled = true
}

defaultConfig {
    applicationId "com.rana.sahaj.myyu"
    minSdkVersion 16
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
    renderscriptTargetApi 20
    renderscriptSupportModeEnabled true

}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

packagingOptions {
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/LICENSE-FIREBASE.txt'
    exclude 'META-INF/NOTICE'
  }
  }

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile('com.github.afollestad.material-dialogs:core:0.8.5.4@aar') {
    transitive = true
}
compile('com.github.coyarzun89:fabtransitionactivity:0.1.1') {
    exclude module: 'CircularReveal'
}
compile 'com.android.support:appcompat-v7:23.2.1'
compile 'com.android.support:design:23.2.1'
compile 'com.android.support:design:23.2.1'
compile 'com.android.support:recyclerview-v7:23.2.1'
compile 'org.lucasr.dspec:dspec:0.1.1'
compile 'com.firebase:firebase-client-android:2.5.0'
compile 'com.android.support:multidex:1.0.1'
compile 'com.google.android.gms:play-services-auth:8.4.0'
compile 'com.google.android.gms:play-services-plus:8.4.0'
compile 'com.android.support:cardview-v7:23.2.1'
compile 'com.github.greenfrvr:rubber-loader:1.1.2@aar'
compile 'com.jakewharton:butterknife:7.0.1'
compile 'com.koushikdutta.ion:ion:2.1.7'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'jp.wasabeef:blurry:1.0.5'
compile 'in.workarounds.typography:typography:0.0.8'
compile 'konifar:fab-transformation:1.0.0'
compile 'de.hdodenhof:circleimageview:1.3.0'
compile 'com.github.dmytrodanylyk:android-morphing-button:98a4986e56'
compile 'jp.wasabeef:recyclerview-animators:2.2.1'
compile 'net.sjava:advancedasynctask:1.0.1'
compile 'com.firebaseui:firebase-ui:0.3.1'
// compile 'org.codehaus.jackson:jackson-mapper-asl:1.9.13'

}

编辑:添加FriendsData类

public class FriendsData {
String picurl;
String userNAME;
String status;
String sahaj;
String EmailPref="sahaj9917730102@gmail";


public String getSahaj() {
    return sahaj;
}

public void setSahaj(String sahaj) {
    this.sahaj = sahaj;
}

public String getEmailPref() {
    return EmailPref;
}

public void setEmailPref(String emailPref) {
    EmailPref = emailPref;
}




public FriendsData(){

}

public String getPicurl() {
    return picurl;
}

public void setPicurl(String picurl) {
    this.picurl = picurl;
}

public String getUserNAME() {
    return userNAME;
}

public void setUserNAME(String userNAME) {
    this.userNAME = userNAME;
}

public String getStatus() {
    return status;
}

public void setStatus(String status) {
    this.status = status;
}



}

在这个EmailPref正在为非常个人的用户更改,所以我不能在课堂上硬编码

共有2个答案

魏翔
2023-03-14

我正在查看您提供的快照。你有几个笨蛋_n@gmail 用户。其中,它们有一个键值对,键值为sahaj9917730102@gmail 。这是有道理的,因为您的错误是:

无法识别的字段“sahaj9917730102@gmail"

在您的FriendsData对象中,您没有具有该名称的字段。但是,您确实有statussahajpicurluserNAMEemailPref。您要么需要从仪表板中删除这些,要么修改您的FriendsData对象以具有具有该名称的值

如果您想将其添加为字段,请像这样修改您的对象:

public class FriendsData {

    String picurl;
    String userNAME;
    String status;
    String sahaj;
    String sahaj9917730102@gmail; // this is the key NAME, not value. 

    //all your accessors

}

我知道这不实用,但我给了你解决方案,这样你就可以理解问题了。您需要更改它,以便值不需要硬编码。我不确定值的用途,但我会推荐一个布尔列表?即:

public class FriendsData {
     //others
     Map<String, Boolean> emails = new HashMap<>();
     ///...
}

然后再加上

 emails.put("sahaj9917730102@gmail", true);

邢心水
2023-03-14

这不是java代码在运行时的问题,而是构建的问题。尝试将此添加到您的构建中的android块中。渐变

android {

    // ... other stuff

    packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE-FIREBASE.txt'
        exclude 'META-INF/NOTICE'
    }
}

 类似资料:
  • 问题内容: 我正在使用hibernate3.6.7进行映射。我将连接部分设置为静态。我需要服务程序永远运行,另一个服务将调用该服务的某些方法来查询数据库。当我让该服务运行时,第一天工作良好,但是第二天我调用它时,它给出了: 似乎连接已关闭。有人可以给我一些建议吗? 非常感谢你:) 问题答案: 听起来好像数据库已关闭连接或某个网络设备已终止套接字。您可以通过多种方法来解决此问题: 您可以经常在连接上

  • 问题内容: 我正在使用Struts2&Hibernate并在使用字符串搜索数据时出现以下错误,但是在使用数字搜索时对我有用。我从豆类和豆类中的字符串类型的已定义的属性中获取此值。 下面我提供代码: 豆类: 对应: 错误: 问题答案: 之所以引发,是因为Hibernate生成的SQL查询的SQL语法错误。构建查询的方式是错误的,不应将值(尤其是字符串值)连接到结果查询,因为此类代码容易受到SQL注入

  • 问题内容: 所涉及的rdms是oracle错误是 我想用这个查询做的是: 阈值表包含列阈值类型,其中包含现金交易表的列名称 对于阈值表中的每个记录,我们需要根据现金交易表中的阈值类型来比较总和(金额)组。 并将获取的数量与阈值表的threshold_amount比较 我需要选择threshold_id 阈值表: 现金交易表: 期望的输出: 让我们进行第一个提取:阈值表中的第一个记录 1.现在thr

  • 我在自定义字段中创建新字段,并给它一个位置,如下所示: 之后,我激活Show In GraphQL按钮并设置acf名称: 现在,我试图在wp-graphql中查询acf globalOptions,它给了我一个错误。此外,我在建议或模式中都找不到globalOptions。 文件: 我该如何解决这个问题? 提前感谢。

  • 当我在GSI上查询时,我对Amazon DynamoDBv2的Amazon DynamoDBAsync.query异步请求的实现返回代码400“查询条件错过了关键模式元素......”。 我尝试使用DynamoDBAttribute名称(“myAttr”)和GSI的实际索引名称(“idx\u global\u myAttr”),并收到相同的错误代码。这与Docker的图片“amazon/dynam

  • 问题内容: 我们正在尝试将包含多个插入语句的SQL文件作为一个查询运行,但是当任何一个语句包含错误时,它似乎都会失败。 MySQLd配置: Python代码: 预期结果:打印两次“抛出异常”和“回滚”。 使用MySQL-python 1.2.4的实际结果: 是什么赋予了?我们是否真的必须解析SQL以拆分语句(需要进行所有转义和引号处理)才能在多个s中运行它们? 问题答案: 显然,在(aka。)中无