The consistent read_time for the given target_ids (omitted when the
target_ids are not at a consistent snapshot).
The stream is guaranteed to send a read_time with target_ids empty
whenever the entire stream reaches a new consistent snapshot. ADD,
CURRENT, and RESET messages are guaranteed to (eventually) result in a
new consistent snapshot (while NO_CHANGE and REMOVE messages are not).
For a given stream, read_time is guaranteed to be monotonically
increasing.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["\u003cp\u003eThe latest version of the \u003ccode\u003eTargetChange\u003c/code\u003e class within the Firestore v1 API is 3.10.0, with multiple prior versions available for reference.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eTargetChange\u003c/code\u003e class represents changes to the targets being watched in Firestore, implementing interfaces such as \u003ccode\u003eIMessage\u003c/code\u003e, \u003ccode\u003eIEquatable\u003c/code\u003e, and \u003ccode\u003eIDeepCloneable\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eKey properties of the \u003ccode\u003eTargetChange\u003c/code\u003e class include \u003ccode\u003eCause\u003c/code\u003e (the error leading to the change), \u003ccode\u003eReadTime\u003c/code\u003e (consistent read time for target IDs), \u003ccode\u003eResumeToken\u003c/code\u003e (token to resume the stream), \u003ccode\u003eTargetChangeType\u003c/code\u003e (type of change), and \u003ccode\u003eTargetIds\u003c/code\u003e (IDs of targets affected).\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eTargetChange\u003c/code\u003e can have two constructors: the default \u003ccode\u003eTargetChange()\u003c/code\u003e and a second one, \u003ccode\u003eTargetChange(TargetChange other)\u003c/code\u003e, which takes another \u003ccode\u003eTargetChange\u003c/code\u003e object as a parameter.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eTargetChange\u003c/code\u003e class has inherited members from \u003ccode\u003eobject\u003c/code\u003e, such as \u003ccode\u003eGetHashCode()\u003c/code\u003e, \u003ccode\u003eGetType()\u003c/code\u003e, \u003ccode\u003eMemberwiseClone()\u003c/code\u003e, and \u003ccode\u003eToString()\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,[]]