首页 > 解决方案 > 按意图传递 firebase 数据会导致 java.lang.IllegalArgumentException

问题描述

我的数据来自 Firebase 云 Firestore,它不包含斜杠“/”,因为这个问题的每个解决方案总是告诉我使用.replace("/","-"). 该 ID 是来自 Firebase“cHkncpz6RVHv4ITFlICr”的通用 ID

HomePageAdapter.java

Intent passID = new Intent(itemView.getContext(),Destination.class);
passID.putExtra("ID", destinationID);
itemView.getContext().startActivity(passID);

目的地.java

ID = getIntent().getStringExtra("ID");
firebaseFirestore.collection("DESTINATION").document(ID) <----- this line throws java.lang.IllegalArgumentException: Invalid document reference. Document references must have an even number of segments, but DESTINATIONS has 1

到目前为止我尝试的是:

  1. 将字符串 ID 替换为ID = "cHkncpz6RVHv4ITFlICr";应用程序当然可以工作。
  2. 如果 ID 为空,则进行跟踪,这不是因为 LOG 显示 ID 为“cHkncpz6RVHv4ITFlICr”。
Log.d("ID", destinationID);

返回

D/ID: cHkncpz6RVHv4ITFlICr
  1. 替换了 Intent 中的额外内容,passID.putExtra("ID", "cHkncpz6RVHv4ITFlICr");该应用程序不起作用。

所以我的结论是意图导致这个异常。任何帮助深表感谢。

标签: javaandroidfirebaseandroid-intentgoogle-cloud-firestore

解决方案


推荐阅读