@Rhino: if you change the “ProjectBucket” property of the FirebaseDB1 component to a top level tag, you can then access the next lower level tags directly. So you can make the ProjectBucket property “LivingRoom” (either in the designer window or programatically in the blocks view). Then, inside the “when FirebaseDB1.DataChanged” event handler, “call FirebaseDB1.GetValue” for each tag that you want to read. Inside the “when FirebaseDB1.GotValue” event handler, you can test which tag got read and read out the value directly. Alternatively, leave ProjectBucket to the database name (default) and access lower level tags directly using a path-like construct, i.e. “LivingRoom/Light” and “LivingRoom/TimeStamp”. Either way, you let Firebase parse the JSON tree rather than you doing it in AI2.
The only issue that I am having is that when I read out the TimeStamp this way, the string in AI2 terminates at the colon (:). I think that this is a bug in the AI2 Firebase component code - perhaps it interprets the colon as a tag:value separator rather than just part of the double quoted string. I need to do some more playing around with this, but the ultimate workaround would be to not use the webhook-supplied timestamp but include a Particle device firmware timestamp in the published string, formatted however I choose to do so (thus ignoring colons if they make AI2 unhappy).