1
00:00:00,210 --> 00:00:06,140
So now let's actually declare some variables here inside the main activity class.

2
00:00:06,150 --> 00:00:13,830
So now here I just started typing firebase database and the name of this variable is going to be database

3
00:00:14,340 --> 00:00:15,620
assignment operator.

4
00:00:15,690 --> 00:00:20,390
And here I want to actually create an instance from our database.

5
00:00:20,400 --> 00:00:25,950
So here I can say Firebrace database start with instance and then I need to put a semicolon at the end

6
00:00:25,950 --> 00:00:27,200
of my statement.

7
00:00:27,210 --> 00:00:33,570
So in this way you are actually getting on an instance of our database so let's actually open our web

8
00:00:33,570 --> 00:00:38,710
browser here and now actually go to our console on here.

9
00:00:38,850 --> 00:00:46,200
As you can see we just need to select our project So our project is this one at 60 65 right.

10
00:00:46,200 --> 00:00:47,610
So let's actually click on it.

11
00:00:48,830 --> 00:00:52,690
And then here to just click on this database here.

12
00:00:53,990 --> 00:00:56,850
And now click on these rules tab.

13
00:00:57,200 --> 00:01:03,830
So now let's actually change the rules so that the users that are not authenticated can also interact

14
00:01:03,830 --> 00:01:04,950
with the database.

15
00:01:05,150 --> 00:01:08,130
So let's actually change the rules here so here.

16
00:01:08,240 --> 00:01:12,350
Just delete this exclamation mark and put an equal operator.

17
00:01:12,650 --> 00:01:19,330
And then here just delete this exclamation mark and put any quote operator here and then click publish.

18
00:01:19,760 --> 00:01:21,970
So now it says rules published.

19
00:01:21,980 --> 00:01:24,740
So let's actually click on the state I'd have here again.

20
00:01:25,160 --> 00:01:29,510
And now here it is our database instance right.

21
00:01:29,600 --> 00:01:36,200
So when we say that we have actually an instance from our database this is that instance right.

22
00:01:36,590 --> 00:01:44,760
And now as you can see here I actually initialized this valuable right inside our class.

23
00:01:44,780 --> 00:01:51,110
It's not a good program in practice to initialize your valuables inside your class.

24
00:01:51,260 --> 00:01:57,680
It's always recommended that you just declared your valuables here inside just inside your main activity

25
00:01:57,680 --> 00:02:01,580
class and then inside your uncreate Smurfette initialized them.

26
00:02:01,580 --> 00:02:02,240
Why.

27
00:02:02,240 --> 00:02:09,020
Because for example when you are actually transitioning to another activity and when you want to actually

28
00:02:09,380 --> 00:02:16,370
come back to this activity again for example this class display an activity here may be actually garbage

29
00:02:16,370 --> 00:02:20,410
collected and maybe just eliminated from our memory.

30
00:02:20,420 --> 00:02:25,430
So in that case we may have no instance for a modified firebase database.

31
00:02:25,430 --> 00:02:32,740
But if we have this uncreate method here inside our uncreative it just initialize my valuable here.

32
00:02:33,050 --> 00:02:39,440
Every time that this main activity here is actually shown to the user this uncreate Smurfette is going

33
00:02:39,440 --> 00:02:43,640
to be called as the first method that is actually being caught.

34
00:02:43,670 --> 00:02:44,330
Right.

35
00:02:44,330 --> 00:02:48,530
So let's actually delete this initialiser here and here.

36
00:02:48,560 --> 00:02:55,700
Let's just put a semicolon here and now as you can see I just declare my variable my firebase database

37
00:02:55,700 --> 00:02:56,750
here right.

38
00:02:56,780 --> 00:02:58,770
I didn't initialize it yet.

39
00:02:58,880 --> 00:03:05,980
So let's actually declare that let's actually declare another variable of type database reference.

40
00:03:06,410 --> 00:03:09,950
So now you've got to have a reference to this instance.

41
00:03:10,040 --> 00:03:10,570
Right.

42
00:03:10,580 --> 00:03:13,580
It's not enough to just have the database instance.

43
00:03:13,580 --> 00:03:18,560
We just need to have a reference to this database to this instance.

44
00:03:18,560 --> 00:03:23,660
So let's go back to what androids would use or database offense and the name is database reference assignment

45
00:03:23,660 --> 00:03:24,330
operator.

46
00:03:24,500 --> 00:03:31,610
And here I just need to refer to the name of this database that gets a reference and then put a semicolon

47
00:03:31,940 --> 00:03:32,980
at the end of your statement.

48
00:03:32,990 --> 00:03:36,910
And again as you can see I just initialized it here right.

49
00:03:36,930 --> 00:03:43,310
It's not a good Procrit programming practice to initialize your variables here especially your objects

50
00:03:43,400 --> 00:03:49,370
as you can see here we have objects but it's good it's actually it's not a problem to initialize your

51
00:03:49,670 --> 00:03:54,040
primitive data types such as ints or floats or char.

52
00:03:54,170 --> 00:03:56,690
It's not a problem but for your objects.

53
00:03:56,690 --> 00:04:01,570
Always make sure to initialize them inside your methods such as uncreate or on resume.

54
00:04:01,730 --> 00:04:06,580
So you already are familiar with the android lifecycle methods.

55
00:04:06,590 --> 00:04:09,890
So again let's actually delete this initialization here.

56
00:04:10,100 --> 00:04:17,840
So here I wanted to actually talk about this initialising variables especially the objects inside your

57
00:04:17,840 --> 00:04:18,580
class.

58
00:04:18,710 --> 00:04:24,630
And what's the difference between initializing them inside your class and initializing them.

59
00:04:24,650 --> 00:04:27,600
Inside the method such as this uncreate Smurfette.

60
00:04:27,710 --> 00:04:28,160
Right.

61
00:04:28,220 --> 00:04:30,610
So now let's go inside this uncreate Smurfette.

62
00:04:30,650 --> 00:04:36,800
And here inside this uncreate Meffert let's just initialize our variables here.

63
00:04:36,800 --> 00:04:39,050
For example this one firebase the top is.

64
00:04:39,110 --> 00:04:45,800
So inside this uncreate I can say database assignment operator and then here I can just say firebase

65
00:04:45,800 --> 00:04:50,860
database start get instance and then I need to put a semicolon he added of my statement.

66
00:04:51,020 --> 00:04:54,120
And now let's initialize our database reference.

67
00:04:54,140 --> 00:04:58,310
So here I tend to say database reference assignment operator.

68
00:04:58,460 --> 00:05:04,340
And then here I can refer to the name of this database that gets through a fence and then I need to

69
00:05:04,340 --> 00:05:06,670
put a semicolon at the end of my statement.

70
00:05:06,710 --> 00:05:14,960
So we managed to actually declare and initialize all of a firebase database object and database reference

71
00:05:15,020 --> 00:05:15,570
object.

72
00:05:15,650 --> 00:05:16,200
Right.

73
00:05:16,520 --> 00:05:20,750
So now let's actually put some more lines of code here.

74
00:05:20,750 --> 00:05:23,200
Inside is uncreate method.

75
00:05:23,270 --> 00:05:29,180
The first thing that we should do here is to actually make the spot in BT and send data to separate

76
00:05:29,180 --> 00:05:32,510
the spot in actually a listener to the clicks of the user.

77
00:05:32,510 --> 00:05:36,030
So let me show you the emulator as you can see this is our emulator.

78
00:05:36,140 --> 00:05:38,070
And now I want to actually read these data.

79
00:05:38,090 --> 00:05:42,880
For example the Buxar name the Buxar punch power and the box of punch speed.

80
00:05:42,980 --> 00:05:50,010
And I want to actually get these values from these texts and I want to send them to the server whenever

81
00:05:50,030 --> 00:05:52,640
the user clicks on the spot and send data.

82
00:05:52,820 --> 00:06:00,610
So do that here inside this uncreate benefit I meant to say PTEN send data to server that said unclick

83
00:06:00,630 --> 00:06:01,440
listener.

84
00:06:01,710 --> 00:06:07,050
And here I just need to put the new key word here and then just hold the shift key on your keyboard

85
00:06:07,080 --> 00:06:09,730
and then press on the leader the key on your keyboard.

86
00:06:09,900 --> 00:06:15,560
And now the autocomplete feature of the Android studio is actually helping us to choose this option.

87
00:06:15,570 --> 00:06:17,080
Unclick listener right.

88
00:06:17,160 --> 00:06:20,460
So as this one here and in person enter key on your keyboard.

89
00:06:20,730 --> 00:06:26,580
And now as you can see here are the Android studio automatically put these lines of code here for us.

90
00:06:26,580 --> 00:06:32,490
So again let me tell you that we have actually an anonymous in a class and this anonymous in a class

91
00:06:32,490 --> 00:06:37,620
is actually implemented in the they view that and click click center interface.

92
00:06:37,680 --> 00:06:43,650
And because that anonymous class is implementing this interface unclick listener that class must actually

93
00:06:43,650 --> 00:06:47,280
pro-white an implementation for this on a college Meffert.

94
00:06:47,490 --> 00:06:50,910
So the remember that anonymous classes are classes without names.

95
00:06:50,970 --> 00:06:51,390
Right.

96
00:06:51,420 --> 00:06:55,550
So here we have actually a class but that class doesn't have a name.

97
00:06:55,560 --> 00:07:01,650
So now here we are actually inside a class and now we are going to have inside Smurfette in that is

98
00:07:01,650 --> 00:07:05,890
inside of that anonymous inner class which is this one on clique Meffert right.

99
00:07:06,150 --> 00:07:07,810
So let's go inside this method.

100
00:07:08,150 --> 00:07:11,670
So what we should do here what should I do here.

101
00:07:11,670 --> 00:07:18,320
What I want to do here is always ask these questions when you want to actually write your codes.

102
00:07:18,510 --> 00:07:26,790
So the first thing that you want to do here is to actually create an object of the hype Buxar class.

103
00:07:26,790 --> 00:07:31,590
So let's actually just click on this box or telephone it here as you can see if you have a box or a

104
00:07:31,590 --> 00:07:34,270
class with these instance variables as you can see.

105
00:07:34,280 --> 00:07:36,160
Here we have actually this constructed.

106
00:07:36,180 --> 00:07:39,910
And we have these getters for these instance variables.

107
00:07:40,080 --> 00:07:46,010
So inside this main activity class are you able to create an object of pipe Buxar of tables at class

108
00:07:46,240 --> 00:07:49,950
and I want to actually descent that specific object to the server.

109
00:07:50,100 --> 00:07:51,660
So let's see how we can do that.

110
00:07:51,660 --> 00:07:55,660
First of all I need to elevate the use it actually click on this button.

111
00:07:55,740 --> 00:07:58,200
I need to create an object of type Buxar.

112
00:07:58,350 --> 00:08:01,230
So let's actually create an object of a Buxar here.

113
00:08:01,230 --> 00:08:06,770
So here I can say Boxer and the name of my object is Buxar assignment operator.

114
00:08:07,050 --> 00:08:09,920
And here I just need to put the new keyword here.

115
00:08:09,960 --> 00:08:16,610
So as you can see here first I just created a valuable type box.

116
00:08:16,680 --> 00:08:16,920
Right.

117
00:08:16,920 --> 00:08:18,930
And the name of many variables is boxer.

118
00:08:18,930 --> 00:08:26,790
So you already know that variables are just placeholders for storing data values valuables in order

119
00:08:26,790 --> 00:08:33,840
to store data and when ever I want to actually access those data I can just refer to the name of that

120
00:08:34,020 --> 00:08:34,770
variable.

121
00:08:34,950 --> 00:08:41,760
So here we have this body right here right and now I've put an assignment operator here and now I want

122
00:08:41,760 --> 00:08:44,280
to actually create the actual object.

123
00:08:44,280 --> 00:08:49,970
So whenever you put the new key word it means that you want to create an object so new.

124
00:08:50,100 --> 00:08:56,370
And here I can say Boxer and here just select this upset and then press enter key on your keyboard.

125
00:08:56,610 --> 00:08:59,880
And here it says that we have actually two constructors.

126
00:08:59,940 --> 00:09:03,810
The first constructor is without no no parameters.

127
00:09:03,800 --> 00:09:05,950
It is without any parameters as you can see here.

128
00:09:06,240 --> 00:09:12,750
But the second constructor is this one which accepts an argument of types 3 and Buxar name.

129
00:09:12,750 --> 00:09:19,750
So let's actually provide a name for our Buxar so we can provide a string value here a string literal

130
00:09:20,190 --> 00:09:27,300
or as you can see here let me show you the emulator and as you can see we have these 80 texts.

131
00:09:27,360 --> 00:09:31,840
So you want to get these values from are any texts or text fields.

132
00:09:31,980 --> 00:09:43,050
So here I can say for the first argument I can't say EDT Boxford name dot get fixed dot two strings.

133
00:09:43,620 --> 00:09:44,310
Right.

134
00:09:44,310 --> 00:09:49,120
So this is going to be our first argument for our puzzle name.

135
00:09:49,170 --> 00:09:52,690
The second argument is actually for the Buxar power.

136
00:09:52,740 --> 00:09:53,280
Right.

137
00:09:53,280 --> 00:09:55,940
So here again this is our edit text right.

138
00:09:55,950 --> 00:10:06,880
So here I can't say EDT EDT box idiotcy punch power that's get text that string.

139
00:10:07,380 --> 00:10:12,070
So this is our second argument and the first argument is this one punch speed.

140
00:10:12,090 --> 00:10:12,640
Right.

141
00:10:12,660 --> 00:10:17,140
So here I can't say EDT punch speed.

142
00:10:17,520 --> 00:10:24,750
That's good text editor pun spitted get text that too strange.

143
00:10:25,200 --> 00:10:28,010
So at the end of your statement put a semi-colon.

144
00:10:28,030 --> 00:10:33,350
And now let me actually create a new line here so that you can see these values are better.

145
00:10:33,750 --> 00:10:41,730
So as you can see here you are creating an object of type Buxar and this box class as you can see needs

146
00:10:41,810 --> 00:10:43,640
of free arguments as you can see here.

147
00:10:43,650 --> 00:10:48,660
This object needs a free values for free arguments for the first argument.

148
00:10:48,690 --> 00:10:54,000
As you can see here if you need to pass a string value which is this one EDT box and in that get text

149
00:10:54,000 --> 00:10:54,840
that was.

150
00:10:55,170 --> 00:11:00,240
But for the second argument as you can see we have punch power which is of integer.

151
00:11:00,420 --> 00:11:03,910
Right but we actually passed OSTLUND value.

152
00:11:03,990 --> 00:11:06,850
EDT punch power that get text that restraint.

153
00:11:06,930 --> 00:11:10,730
This is actually string value that we get from this text.

154
00:11:10,890 --> 00:11:16,100
So here mean it actually an integer value not and not as string value.

155
00:11:16,110 --> 00:11:17,560
So what's the problem here.

156
00:11:17,610 --> 00:11:25,050
How we can solve this problem how we can actually convert it and a string value to an integer value.

157
00:11:25,050 --> 00:11:30,480
So in order to do that here as a Can I just need to just type in here integer.

158
00:11:30,540 --> 00:11:33,360
So before this value it is punch power.

159
00:11:33,360 --> 00:11:35,230
Here are just the integer.

160
00:11:35,550 --> 00:11:39,220
So here I am referring to the name of the integer class with capital.

161
00:11:39,300 --> 00:11:40,490
This is very important.

162
00:11:40,620 --> 00:11:44,550
And then here I just need to call a static method on this class.

163
00:11:44,550 --> 00:11:48,510
So you already you are already familiar with the static methods indaba.

164
00:11:48,690 --> 00:11:52,280
So here integer parts end.

165
00:11:52,380 --> 00:11:58,560
So as you can see here we have this method parse it and this method parse and accepts an argument of

166
00:11:58,560 --> 00:11:59,490
types 3.

167
00:11:59,670 --> 00:12:03,480
So it's going to actually convert a string value to an integer value.

168
00:12:03,570 --> 00:12:05,840
So integer that parse it.

169
00:12:06,240 --> 00:12:14,310
And now we need to pass this thing value to this method parse it and then I need to put a close parenthesis

170
00:12:14,310 --> 00:12:15,260
here at the end.

171
00:12:15,420 --> 00:12:17,230
So this is our second argument.

172
00:12:17,240 --> 00:12:24,930
And now we solve one of these problems and here we have our first argument as you can see here it says

173
00:12:25,110 --> 00:12:29,440
again for the first argument we need to pass the punch speed because of that integer.

174
00:12:29,580 --> 00:12:31,780
But we passed our string value.

175
00:12:31,890 --> 00:12:38,840
So here in order to solve this problem again I can say integer dot parse it as you can see here.

176
00:12:38,970 --> 00:12:46,290
Again I need to pass this string value to this method parse it and then I need to put a close parenthesis

177
00:12:46,290 --> 00:12:49,890
at the end so hopefully that makes sense.

178
00:12:49,950 --> 00:12:58,140
And now you can see that we created an object of type Buxar here and we passed these values as the arguments

179
00:12:58,140 --> 00:13:00,300
of these Boxford object right.

180
00:13:01,370 --> 00:13:04,620
And be assigned it is object to this Buxar valuable.

181
00:13:04,790 --> 00:13:08,810
So now this box of valuable holds this box that object.

182
00:13:08,810 --> 00:13:09,510
Right.

183
00:13:09,860 --> 00:13:13,540
And now I want to actually send this Buxar objects to the set.

184
00:13:13,540 --> 00:13:14,030
Right.

185
00:13:14,060 --> 00:13:15,890
So let's see how we can do that here.

186
00:13:15,880 --> 00:13:20,260
I can say database reference dots.

187
00:13:20,670 --> 00:13:24,850
And here I want to actually create a child here.

188
00:13:24,960 --> 00:13:26,260
I want to create a child.

189
00:13:26,400 --> 00:13:28,460
Let's let me show you the web browser here.

190
00:13:28,680 --> 00:13:34,960
I want to create a child and I want that child name to be actually a unique ID.

191
00:13:35,130 --> 00:13:40,270
And then I need to I want to actually pass that object to that box that object to that idea.

192
00:13:40,290 --> 00:13:47,950
I want to actually pass up the box that object as a child of that ID.

193
00:13:47,970 --> 00:13:52,380
So in this way we can have multiple IDs with different backset objects.

194
00:13:52,380 --> 00:13:53,750
So let's see how we can do that.

195
00:13:53,760 --> 00:13:55,400
Let's go back to an android studio.

196
00:13:55,470 --> 00:13:59,970
So database reference thot child.

197
00:13:59,970 --> 00:14:02,950
So for the child I need to pass a string value right.

198
00:14:02,970 --> 00:14:06,270
So here I can't say databased offense.

199
00:14:06,270 --> 00:14:10,910
That's a push that's key.

200
00:14:10,950 --> 00:14:18,000
So in this way we are actually creating a unique ID so database reference that push that get keyed in

201
00:14:18,000 --> 00:14:22,500
this way we are creating a unique ID and then we are actually getting that value which is actually the

202
00:14:22,500 --> 00:14:23,430
osting value.

203
00:14:23,460 --> 00:14:25,100
By calling this method get key.

204
00:14:25,290 --> 00:14:33,240
So in this way we can actually get that child right and you want to pass or box that object to that

205
00:14:33,450 --> 00:14:35,280
child which is this idea.

206
00:14:35,310 --> 00:14:42,220
So here I can say that set value Buxar semicolon.

207
00:14:42,510 --> 00:14:46,320
So now we can actually pass our box object to the server.

208
00:14:46,410 --> 00:14:49,580
So it's actually on our project and see what happens.

209
00:14:49,710 --> 00:14:54,820
So now as you can see here our application is actually running on this emulator here.

210
00:14:54,930 --> 00:14:59,900
So let me show you the web browser here and then let me show you the emulator.

211
00:15:00,120 --> 00:15:06,090
So now let's actually create an abox that object and this sent that box that object to this error.

212
00:15:06,150 --> 00:15:08,310
So let's specify the Buxar name.

213
00:15:08,310 --> 00:15:10,510
So for example the box and it is a.

214
00:15:10,740 --> 00:15:14,610
And the punch power is one handed and the punch speed is 200.

215
00:15:14,610 --> 00:15:15,280
Right.

216
00:15:15,390 --> 00:15:19,420
So now let's click on the spot and send data to server.

217
00:15:19,580 --> 00:15:22,640
And now we should see these data here.

218
00:15:22,890 --> 00:15:24,390
That's a little bit here.

219
00:15:26,050 --> 00:15:29,020
And here as you can see this is our ID.

220
00:15:29,050 --> 00:15:34,640
I told you that I'm going to actually create a unique ID and then we can actually pass that the box

221
00:15:34,690 --> 00:15:42,790
that object to this idea or I can actually make that box that objects object as a child of this ID.

222
00:15:42,910 --> 00:15:43,210
Right.

223
00:15:43,210 --> 00:15:49,570
So we have this unique ID and he and as you can see this is our box of object with these values Buxar

224
00:15:49,630 --> 00:15:54,160
named a punch power 100 and Dupont's speed 200.

225
00:15:54,160 --> 00:16:00,600
So we have this unique ID and this box that object is actually a child of this unique ID.

226
00:16:00,610 --> 00:16:01,260
Right.

227
00:16:01,540 --> 00:16:03,820
So let's actually create another box set up to it.

228
00:16:03,870 --> 00:16:11,180
In this this time the name is be the punch power is 10 and the punch speed is 20.

229
00:16:11,410 --> 00:16:17,860
Let's click on this button send data to server and again as you can see we have another box up box that

230
00:16:17,890 --> 00:16:24,970
object we can actually create another box object with these specifications with these values because

231
00:16:24,970 --> 00:16:27,900
we have different ideas as you can see here.

232
00:16:27,910 --> 00:16:28,420
Right.

233
00:16:28,600 --> 00:16:32,880
So let's create another box set up to this time the name is c..

234
00:16:33,130 --> 00:16:35,460
And the punch power is a 400.

235
00:16:35,680 --> 00:16:41,950
And the punch speed is for example 90 and then click on send data to a server and he and as you can

236
00:16:41,950 --> 00:16:47,140
see we have another box set object with a unique ID.

237
00:16:47,140 --> 00:16:50,020
Let's create another boxer object.

238
00:16:50,020 --> 00:16:56,020
So this time the name is D and the power the punch power is for 40.

239
00:16:56,020 --> 00:17:00,700
And the punch spit is 900 and then click on send data to server.

240
00:17:00,700 --> 00:17:05,160
And again as you can see we have another box object here.

241
00:17:05,230 --> 00:17:06,120
Right.

242
00:17:06,130 --> 00:17:14,230
So let's go back to our Android studio and now I will try to get these data here as you can see we have

243
00:17:14,230 --> 00:17:15,590
these data here right.

244
00:17:15,590 --> 00:17:22,690
I want to get all these data this and I want to show it here inside my emulator inside our takes view

245
00:17:22,720 --> 00:17:26,340
that is actually the inside of a vertical scroll view.

246
00:17:26,530 --> 00:17:33,120
So let's go back to our Android studio and here before the end in curly brace of this uncreate Smurfette.

247
00:17:33,130 --> 00:17:38,970
So as you can see here after the Indian curly brace and after the end prentices hear of this up.

248
00:17:39,040 --> 00:17:47,420
So thankful because of this button I want to actually just create an add value event listener for our

249
00:17:47,740 --> 00:17:48,550
reference.

250
00:17:48,640 --> 00:17:49,100
Right.

251
00:17:49,120 --> 00:17:51,210
So let me show you the web browser as you can see.

252
00:17:51,250 --> 00:17:56,950
I can actually create an add value event listener for this reference and then I can be notified when

253
00:17:57,310 --> 00:17:58,400
the user changes.

254
00:17:58,510 --> 00:18:03,940
One of these objects right for example the user wants to delete this object.

255
00:18:04,060 --> 00:18:05,720
And then I can be notified.

256
00:18:05,840 --> 00:18:09,230
Or for example the user adds an object to the database.

257
00:18:09,250 --> 00:18:14,000
And in that way again I can be notified and I can show that data to the user.

258
00:18:14,020 --> 00:18:19,480
So let's go back to our Android studio and here I can say database reference.

259
00:18:19,670 --> 00:18:24,300
That's at value event listener knew.

260
00:18:24,350 --> 00:18:29,730
So in say the prentices just put the new key vote and he had to just hold the shift key on your keyboard

261
00:18:29,760 --> 00:18:32,050
and then press on the little key on your keyboard.

262
00:18:32,190 --> 00:18:37,770
Value event listener and the Android studio is going to help you to choose this option and that person

263
00:18:37,830 --> 00:18:39,250
entered on your keyboard.

264
00:18:39,420 --> 00:18:42,730
And here as you can see after the end prentices just put a semicolon.

265
00:18:42,930 --> 00:18:48,170
So now as you can see we have these two methods on data change and canceled.

266
00:18:48,210 --> 00:18:52,440
So if you want to work with this on data or change my fear because whenever that user changes one of

267
00:18:52,440 --> 00:18:54,030
these objects we can be notified.

