PUROGU LADESU

ポエムがメインのブログです。

【ReactNative】expo-randomでユニークなファイル名をつける

firebase storage に画像をアップするために、ユニークなファイル名を考えてみる。 確かuuidはエラーで使えなかった記憶がある。

expo-randomはcrypto.randomBytesと同じだということらしいです。Math.randomより偏りがないということらしいですが仕組みはよく分かりません。

Random - Expo Documentation

import * as Random from 'expo-random';

newFileName = async (length) => {
    let randomBytes = await Random.getRandomBytesAsync(length);
    return randomBytes.reduce((a, c) => a + (c % 32).toString(32));
 };

toStringで32進数に変換することで、8bit(256)の値が[0-9][a-v]に変換されます。 文字列の長さlengthは24〜32くらいあれば大丈夫でしょうか・・・。

qiita.com