0
0
React Nativemobile~20 mins

Cloud Storage in React Native - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Cloud Storage Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
ui_behavior
intermediate
2:00remaining
How does React Native handle file upload progress with cloud storage?
You want to show a progress bar while uploading a file to cloud storage in React Native. Which code snippet correctly updates the progress state during upload?
React Native
import {useState} from 'react';
import {uploadBytesResumable, ref} from 'firebase/storage';

const uploadFile = (file, storage) => {
  const [progress, setProgress] = useState(0);
  const storageRef = ref(storage, 'files/' + file.name);
  const uploadTask = uploadBytesResumable(storageRef, file);

  uploadTask.on('state_changed', snapshot => {
    const percent = (snapshot.bytesTransferred / snapshot.totalBytes) * 100;
    setProgress(percent);
  });

  return progress;
};
AuploadTask.on('state_changed', snapshot => { const percent = (snapshot.bytesTransferred / snapshot.totalBytes) * 100; setProgress(percent); });
BuploadTask.on('progress', snapshot => { const percent = (snapshot.bytesTransferred / snapshot.totalBytes) * 100; setProgress(percent); });
CuploadTask.on('state_changed', () => { setProgress(100); });
DuploadTask.on('change', snapshot => { const percent = (snapshot.bytesTransferred / snapshot.totalBytes) * 100; setProgress(percent); });
Attempts:
2 left
💡 Hint
The event name for upload progress updates is 'state_changed'.
🧠 Conceptual
intermediate
1:30remaining
What is the purpose of Firebase Storage security rules?
Why do we use security rules in Firebase Cloud Storage for a React Native app?
ATo speed up file uploads by caching files locally.
BTo control who can read or write files in the storage bucket.
CTo automatically compress files before upload.
DTo convert files to a different format after upload.
Attempts:
2 left
💡 Hint
Think about protecting user data and access permissions.
lifecycle
advanced
1:30remaining
What happens if you try to download a non-existent file from Firebase Storage?
In React Native, if you call getDownloadURL() on a reference to a file that does not exist in Firebase Storage, what will happen?
AIt returns a URL that leads to a 404 page.
BIt returns an empty string as the URL.
CThe promise rejects with a 'storage/object-not-found' error.
DThe app crashes with an unhandled exception.
Attempts:
2 left
💡 Hint
Check how Firebase Storage handles missing files.
📝 Syntax
advanced
2:00remaining
Which code correctly deletes a file from Firebase Storage in React Native?
You want to delete a file named 'image.png' from Firebase Storage. Which code snippet correctly performs this action?
React Native
import {ref, deleteObject} from 'firebase/storage';

const deleteFile = async (storage) => {
  const fileRef = ref(storage, 'images/image.png');
  await deleteObject(fileRef);
};
Aconst fileRef = ref(storage, 'images/image.png'); await deleteObject();
Bconst fileRef = ref('images/image.png'); await deleteObject(fileRef);
Cconst fileRef = ref(storage, 'images/image.png'); deleteObject(fileRef);
Dconst fileRef = ref(storage, 'images/image.png'); await deleteObject(fileRef);
Attempts:
2 left
💡 Hint
Remember to pass the storage instance to ref and await the async deleteObject call.
🔧 Debug
expert
2:30remaining
Why does this React Native Firebase Storage upload code never update progress?
Consider this code snippet for uploading a file. The progress state never updates. What is the cause?
React Native
const uploadFile = (file, storage) => {
  const [progress, setProgress] = useState(0);
  const storageRef = ref(storage, 'files/' + file.name);
  const uploadTask = uploadBytesResumable(storageRef, file);

  uploadTask.on('state_changed', snapshot => {
    const percent = (snapshot.bytesTransferred / snapshot.totalBytes) * 100;
    setProgress(percent);
  });

  return progress;
};
AThe useState hook is inside the function, so progress resets on every call and never updates UI.
BThe setProgress call is missing parentheses.
CThe event name 'state_changed' is incorrect; it should be 'progress'.
DThe uploadBytesResumable function does not support progress updates.
Attempts:
2 left
💡 Hint
Think about React hooks and component state lifecycle.