It's tough to tell, but here's my thought:
1. In the store method, you store the value "" in the key named by the state variable
2. This will trigger the Firebase DataChanged event, where you check the value of the tag against the state, and since that's probably still true from the previous step, then it will store the value (which was the empty string) into the percentage field.
3. Now, when you click the button to add 2 percent, percentage is now the empty string, resulting in your error.
To confirm, you might want to have the store value function store the value 0 rather than the empty string, or adapt your logic in your DataChanged event to be more robust based on the type of data you're storing, e.g., by making the tag include more information or using the isnumber? and isstring? blocks depending on what you're trying to manipulate.
Cheers,
Evan