title: Facebook Profile Picture Link Changes?
body: <p>Does a link to a facebook profile picture stay up to date or should I store images in storage?</p>
  
  <p>I am using firebase and facebook authentication and grabbing a users profile picture link like this when they FIRST create an account:</p>
  
  <pre><code>const photoLarge = await getFacebookUserInfo().then((userResponse) =&gt; {
                  return userResponse.picture.data.url.toString()
                }).catch((error) =&gt; {
                  return error
                });   
              const userId = await firebaseService.auth().currentUser.uid;
              writeUserData(
                userId,
                photoLarge,
              );
            }
  </code></pre>
  
  <p>For some reason I noticed in dev vs prod I have 2 different links with the dev not working.</p>
  
  <p>Dev doesn't work:</p>
  
  <p><code>https://platform-lookaside.fbsbx.com/platform/profilepic/?asid=10161383578450224&amp;height=200&amp;width=200&amp;ext=1558132998&amp;hash=AeTUIkafEn5zw5PF</code></p>
  
  <p>Prod Does:</p>
  
  <p><code>https://platform-lookaside.fbsbx.com/platform/profilepic/?asid=10161383578450224&amp;height=200&amp;width=200&amp;ext=1558673410&amp;hash=AeQGA8guHyxIK9du</code></p>
  
  <p>I am trying to figure out if the facebook picture should be downloaded and stored in storage and then referenced instead and if so how to go about doing that? (/ is there a expiration date on a link)</p>
  
  <p>I haven't seen if this is happening or not for Google Sign-in.</p>
  
  <p>Here is my graph request:</p>
  
  <pre><code>//graph QL request to get larger facebook profile
  export const getFacebookUserInfo = () =&gt; {
    return new Promise((resolve, reject) =&gt; {
      const infoRequest = new GraphRequest(
        '/me',
        {
          parameters: {
            fields: {
              string: 'email,about,name,picture.type(large)'
            }
          }
        },
        (error, data) =&gt; {
          if (error) {
            reject(error);
          } else {
            resolve(data);
          }
        }
      );
      new GraphRequestManager().addRequest(infoRequest).start();
    })
  }
  </code></pre>