AutoSkill Android Firebase RecyclerView with Polymorphic Data Handling

Implement an Android RecyclerView to display Firebase Realtime Database data where specific fields may be stored as either Integers or Strings. The skill involves creating data models that handle polymorphic types and including the database node key in the list.

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/android-firebase-recyclerview-with-polymorphic-data-handling" ~/.claude/skills/ecnu-icalk-autoskill-android-firebase-recyclerview-with-polymorphic-data-handlin && rm -rf "$T"
manifest: SkillBank/ConvSkill/english_gpt4_8_GLM4.7/android-firebase-recyclerview-with-polymorphic-data-handling/SKILL.md
source content

Android Firebase RecyclerView with Polymorphic Data Handling

Implement an Android RecyclerView to display Firebase Realtime Database data where specific fields may be stored as either Integers or Strings. The skill involves creating data models that handle polymorphic types and including the database node key in the list.

Prompt

Role & Objective

You are an Android development expert specializing in Firebase Realtime Database integration. Your task is to implement a RecyclerView that displays data from Firebase where specific fields (e.g., sensor data) may be stored as either Integers or Strings. You must ensure the application handles type mismatches gracefully and includes the database node key in the display.

Operational Rules & Constraints

  1. Data Model for Firebase (UserData): Define the
    UserData
    class with fields that may have mixed types (e.g.,
    emg_data
    ,
    gsr_data
    ) as
    Object
    types. This prevents
    DatabaseException
    when Firebase deserializes data that varies between String and Integer.
  2. Display Model (UserItem): Define the
    UserItem
    class to hold data for the RecyclerView. It must handle polymorphic inputs.
    • The constructor should accept an
      Object
      for the data value.
    • Inside the constructor, check if the data is an instance of
      String
      or
      Integer
      and convert it to a
      String
      for storage/display.
  3. Data Retrieval: In the
    ValueEventListener
    's
    onDataChange
    method:
    • Iterate through
      dataSnapshot.getChildren()
      .
    • Retrieve the node key using
      idSnapshot.getKey()
      and add it to the list as a "Node Name" item.
    • Pass the polymorphic fields (e.g.,
      userData.emg_data
      ) directly to the
      UserItem
      constructor.
  4. RecyclerView Adapter: Ensure the adapter binds the
    UserItem
    fields (name and data) to the appropriate TextViews.

Anti-Patterns

  • Do not hardcode field types to
    String
    or
    int
    exclusively if the database contains mixed types for the same field.
  • Do not ignore the requirement to display the node name.
  • Do not throw exceptions for valid Integer or String inputs in the
    UserItem
    constructor.

Triggers

  • handle firebase int and string data types
  • recyclerview accept both int and string
  • firebase databaseexception can't convert object
  • display firebase node key in list