Skip to content

Commit 9bb1fb4

Browse files
authored
Remove previous_session_id in favor of first_session_id and session_index (#10762)
* Remove previous_session_id in favor of first_session_id and session_index * CHOP
1 parent 323db3d commit 9bb1fb4

File tree

7 files changed

+21
-20
lines changed

7 files changed

+21
-20
lines changed

FirebaseSessions/ProtoSupport/Protos/sessions.options

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
#
2424

2525
firebase.appquality.sessions.SessionInfo.session_id type:FT_POINTER
26-
firebase.appquality.sessions.SessionInfo.previous_session_id type:FT_POINTER
26+
firebase.appquality.sessions.SessionInfo.first_session_id type:FT_POINTER
2727
firebase.appquality.sessions.SessionInfo.firebase_installation_id type:FT_POINTER
2828
firebase.appquality.sessions.ApplicationInfo.app_id type:FT_POINTER
2929
firebase.appquality.sessions.ApplicationInfo.device_model type:FT_POINTER

FirebaseSessions/ProtoSupport/Protos/sessions.proto

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -115,13 +115,16 @@ message NetworkConnectionInfo {
115115
}
116116

117117
// Contains session-specific information relating to the event being uploaded.
118-
// Next tag: 7
118+
// Next tag: 9
119119
message SessionInfo {
120120
// A globally unique identifier for the session.
121121
string session_id = 1;
122-
// The unique identifier for the session that preceded this one on the device.
123-
// This will be the empty string if there was no previous session.
124-
string previous_session_id = 2;
122+
// Will point to the first Session for the run of the app.
123+
// For the first session, this will be the same as session_id.
124+
string first_session_id = 7;
125+
// What order this Session came in this run of the app. For the first Session
126+
// this will be 0.
127+
int32 session_index = 8;
125128
// Identifies a unique device+app installation: go/firebase-installations
126129
string firebase_installation_id = 3;
127130
// The device-reported timestamp at which the event occurred.

FirebaseSessions/Sources/Development/DevEventConsoleLogger.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ class DevEventConsoleLogger: EventGDTLoggerProtocol {
3838
event_type: \(proto.event_type)
3939
session_data
4040
session_id: \(proto.session_data.session_id.description)
41-
previous_session_id: \(proto.session_data.previous_session_id.description)
41+
first_session_id: \(proto.session_data.first_session_id.description)
42+
session_index: \(proto.session_data.session_index)
4243
event_timestamp_us: \(proto.session_data.event_timestamp_us)
4344
firebase_installation_id: \(proto.session_data.firebase_installation_id.description)
4445
data_collection_status

FirebaseSessions/Sources/SessionStartEvent.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ class SessionStartEvent: NSObject, GDTCOREventDataObject {
4343

4444
proto.event_type = firebase_appquality_sessions_EventType_SESSION_START
4545
proto.session_data.session_id = makeProtoString(sessionInfo.sessionId)
46-
proto.session_data.previous_session_id = makeProtoStringOrNil(sessionInfo.previousSessionId)
4746
proto.session_data.event_timestamp_us = time.timestampUS
4847

4948
proto.application_info.app_id = makeProtoString(appInfo.appID)

FirebaseSessions/SourcesObjC/Protogen/nanopb/sessions.nanopb.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,13 @@ const pb_field_t firebase_appquality_sessions_NetworkConnectionInfo_fields[3] =
3939
PB_LAST_FIELD
4040
};
4141

42-
const pb_field_t firebase_appquality_sessions_SessionInfo_fields[6] = {
42+
const pb_field_t firebase_appquality_sessions_SessionInfo_fields[7] = {
4343
PB_FIELD( 1, BYTES , SINGULAR, POINTER , FIRST, firebase_appquality_sessions_SessionInfo, session_id, session_id, 0),
44-
PB_FIELD( 2, BYTES , SINGULAR, POINTER , OTHER, firebase_appquality_sessions_SessionInfo, previous_session_id, session_id, 0),
45-
PB_FIELD( 3, BYTES , SINGULAR, POINTER , OTHER, firebase_appquality_sessions_SessionInfo, firebase_installation_id, previous_session_id, 0),
44+
PB_FIELD( 3, BYTES , SINGULAR, POINTER , OTHER, firebase_appquality_sessions_SessionInfo, firebase_installation_id, session_id, 0),
4645
PB_FIELD( 4, INT64 , SINGULAR, STATIC , OTHER, firebase_appquality_sessions_SessionInfo, event_timestamp_us, firebase_installation_id, 0),
4746
PB_FIELD( 6, MESSAGE , SINGULAR, STATIC , OTHER, firebase_appquality_sessions_SessionInfo, data_collection_status, event_timestamp_us, &firebase_appquality_sessions_DataCollectionStatus_fields),
47+
PB_FIELD( 7, BYTES , SINGULAR, POINTER , OTHER, firebase_appquality_sessions_SessionInfo, first_session_id, data_collection_status, 0),
48+
PB_FIELD( 8, INT32 , SINGULAR, STATIC , OTHER, firebase_appquality_sessions_SessionInfo, session_index, first_session_id, 0),
4849
PB_LAST_FIELD
4950
};
5051

FirebaseSessions/SourcesObjC/Protogen/nanopb/sessions.nanopb.h

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -155,10 +155,11 @@ typedef struct _firebase_appquality_sessions_AppleApplicationInfo {
155155

156156
typedef struct _firebase_appquality_sessions_SessionInfo {
157157
pb_bytes_array_t *session_id;
158-
pb_bytes_array_t *previous_session_id;
159158
pb_bytes_array_t *firebase_installation_id;
160159
int64_t event_timestamp_us;
161160
firebase_appquality_sessions_DataCollectionStatus data_collection_status;
161+
pb_bytes_array_t *first_session_id;
162+
int32_t session_index;
162163
/* @@protoc_insertion_point(struct:firebase_appquality_sessions_SessionInfo) */
163164
} firebase_appquality_sessions_SessionInfo;
164165

@@ -189,14 +190,14 @@ typedef struct _firebase_appquality_sessions_SessionEvent {
189190
/* Initializer values for message structs */
190191
#define firebase_appquality_sessions_SessionEvent_init_default {_firebase_appquality_sessions_EventType_MIN, firebase_appquality_sessions_SessionInfo_init_default, firebase_appquality_sessions_ApplicationInfo_init_default}
191192
#define firebase_appquality_sessions_NetworkConnectionInfo_init_default {_firebase_appquality_sessions_NetworkConnectionInfo_NetworkType_MIN, _firebase_appquality_sessions_NetworkConnectionInfo_MobileSubtype_MIN}
192-
#define firebase_appquality_sessions_SessionInfo_init_default {NULL, NULL, NULL, 0, firebase_appquality_sessions_DataCollectionStatus_init_default}
193+
#define firebase_appquality_sessions_SessionInfo_init_default {NULL, NULL, 0, firebase_appquality_sessions_DataCollectionStatus_init_default, NULL, 0}
193194
#define firebase_appquality_sessions_DataCollectionStatus_init_default {_firebase_appquality_sessions_DataCollectionState_MIN, _firebase_appquality_sessions_DataCollectionState_MIN, 0}
194195
#define firebase_appquality_sessions_ApplicationInfo_init_default {NULL, NULL, NULL, NULL, 0, {firebase_appquality_sessions_AndroidApplicationInfo_init_default}, NULL, _firebase_appquality_sessions_LogEnvironment_MIN}
195196
#define firebase_appquality_sessions_AndroidApplicationInfo_init_default {NULL, NULL}
196197
#define firebase_appquality_sessions_AppleApplicationInfo_init_default {NULL, firebase_appquality_sessions_NetworkConnectionInfo_init_default, _firebase_appquality_sessions_OsName_MIN, NULL}
197198
#define firebase_appquality_sessions_SessionEvent_init_zero {_firebase_appquality_sessions_EventType_MIN, firebase_appquality_sessions_SessionInfo_init_zero, firebase_appquality_sessions_ApplicationInfo_init_zero}
198199
#define firebase_appquality_sessions_NetworkConnectionInfo_init_zero {_firebase_appquality_sessions_NetworkConnectionInfo_NetworkType_MIN, _firebase_appquality_sessions_NetworkConnectionInfo_MobileSubtype_MIN}
199-
#define firebase_appquality_sessions_SessionInfo_init_zero {NULL, NULL, NULL, 0, firebase_appquality_sessions_DataCollectionStatus_init_zero}
200+
#define firebase_appquality_sessions_SessionInfo_init_zero {NULL, NULL, 0, firebase_appquality_sessions_DataCollectionStatus_init_zero, NULL, 0}
200201
#define firebase_appquality_sessions_DataCollectionStatus_init_zero {_firebase_appquality_sessions_DataCollectionState_MIN, _firebase_appquality_sessions_DataCollectionState_MIN, 0}
201202
#define firebase_appquality_sessions_ApplicationInfo_init_zero {NULL, NULL, NULL, NULL, 0, {firebase_appquality_sessions_AndroidApplicationInfo_init_zero}, NULL, _firebase_appquality_sessions_LogEnvironment_MIN}
202203
#define firebase_appquality_sessions_AndroidApplicationInfo_init_zero {NULL, NULL}
@@ -215,7 +216,8 @@ typedef struct _firebase_appquality_sessions_SessionEvent {
215216
#define firebase_appquality_sessions_AppleApplicationInfo_os_name_tag 4
216217
#define firebase_appquality_sessions_AppleApplicationInfo_mcc_mnc_tag 5
217218
#define firebase_appquality_sessions_SessionInfo_session_id_tag 1
218-
#define firebase_appquality_sessions_SessionInfo_previous_session_id_tag 2
219+
#define firebase_appquality_sessions_SessionInfo_first_session_id_tag 7
220+
#define firebase_appquality_sessions_SessionInfo_session_index_tag 8
219221
#define firebase_appquality_sessions_SessionInfo_firebase_installation_id_tag 3
220222
#define firebase_appquality_sessions_SessionInfo_event_timestamp_us_tag 4
221223
#define firebase_appquality_sessions_SessionInfo_data_collection_status_tag 6
@@ -234,7 +236,7 @@ typedef struct _firebase_appquality_sessions_SessionEvent {
234236
/* Struct field encoding specification for nanopb */
235237
extern const pb_field_t firebase_appquality_sessions_SessionEvent_fields[4];
236238
extern const pb_field_t firebase_appquality_sessions_NetworkConnectionInfo_fields[3];
237-
extern const pb_field_t firebase_appquality_sessions_SessionInfo_fields[6];
239+
extern const pb_field_t firebase_appquality_sessions_SessionInfo_fields[7];
238240
extern const pb_field_t firebase_appquality_sessions_DataCollectionStatus_fields[4];
239241
extern const pb_field_t firebase_appquality_sessions_ApplicationInfo_fields[9];
240242
extern const pb_field_t firebase_appquality_sessions_AndroidApplicationInfo_fields[3];

FirebaseSessions/Tests/Unit/SessionStartEventTests.swift

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,6 @@ class SessionStartEventTests: XCTestCase {
6666
expected: "test_session_id",
6767
fieldName: "session_id"
6868
)
69-
assertEqualProtoString(
70-
proto.session_data.previous_session_id,
71-
expected: "test_previous_session_id",
72-
fieldName: "previous_session_id"
73-
)
7469

7570
XCTAssertEqual(proto.session_data.event_timestamp_us, 123)
7671
}

0 commit comments

Comments
 (0)