The reason fire agate shows diffrent colors is because of interference and not diffraction, i didnt know this until recently.
The difference is, Interference is much like how if you spray down the cement floor on your garage. the water and oil dont mix and it makes a rainbow effect of colors floating ontop of the water, Diffraction breaks the light into a different spectrum of color when it leaves the gemstone. much like a water droplet can make a rainbow