I want to know what range of value can be set to finger id by Unity.
Well, since unused fingerIDs are reused once they are out you usually can have up to max touch count fingerIDs. Though due to timing issues when many new touches are made it might be possible that you get some overlapping between old touches and new ones. So it could be slightly higher.
Apart from that in the past Unity had an issue with fingerIDs that were “stuck” when you loose focus of an Android app while you still had active touches. Those fingerIDs were still be registered but were never removed. So each time when you go back to the home screen while you’re holding down 5 fingers, the fingerIDs in question got stuck. I’m not sure if this has been fixed, but as far as I remember it has. So this might not be an issue anymore.
Finally the number of supported concurrent touches and the exact behaviour may depend on the actual used hardware. My old Nexus 7 2012 supported 10 touches, So I could use all my 10 fingers at the same time. Here under normal circumstances the fingerID didn’t get higher than 9 (0 - 9)
Keep in mind that the hardware usually has issues to distinguish two or more fingers if they get too close to each other. Also since most touch hardware depends on a matrix grid you can get touch ghosting / jamming if 3 fingers (or more) are in a right angle triangle aligned with the grid. This has a similar reason as for keyboards.
For most usecases I would say that a byte value would most likely be enough to store a fingerID. However since the memory savings in such a case is neglectible small I would always just go with an int. If you want to store information per active finger you could use a dictionary or simply a List that stores the information alongside the fingerID. Since the fingerID count is relatively small (usually < 10) it might be even faster to just search for the information in the List.