User account for synchronizing notes and bookmarks with another device

This is one of the features I would like to see in a future update of SAB.

Two weeks back, one user complained about app crashing after a recent update, so we pushed another update to the Play Store. The crash issue was rectified, but even after updating the app was crashing for that particular user. He then uninstalled the app, and installed it again, then the app started working normal for him. But in the meantime, all his notes, bookmarks etc. (he was a regular user for last 2+ years) were lost when he uninstalled the app. (He has 100+ notes).

This issue happens every where. User’s phones crashes, or they will lose phones, or upgrade their phones to a newer model. But they won’t be able to take their customizations (notes, highlights, bookmarks etc.) with them to the new phone.

How about having an option to sign up for a user account and sync their preferences, notes/bookmarks etc.? When they install the app in another device and logs in to their account, all their customizations will be back with them. The same user account can be used to login and store data for all SAB-apps. (People may be using multiple apps).

Great that you brought this up. Make sure to vote for it as well Joshy :slight_smile:

Love to see this feature in our apps. Preferably implemented using Firebase.

1 Like

Glad to see Firebase Realtime Database implemented in SAB 5.6 update. FYI. @Aaronsedna.

User feedback :

Update :

This feature is implemented in SAB 9.0 released on August 4th, 2021

  • User Accounts
    • Users can create an account to save highlights, bookmarks and notes.
    • This allows users to share highlights, notes and bookmarks between devices, and they can avoid losing their work if they change their phone.
    • See App > User Accounts.
    • For more information on setting up a database in Firebase, see User Accounts section in the Building Apps documentation.
1 Like

I’m glad to see this feature as saving highlights and notes will be important for some users.
In the instructions, it tells you to click on ‘Require each user
to register with their details when they first use the app’. I see that when you configure it there is an options to ‘Allow user to skip registration’. This is great as I think signing in will make users in sensitive situations nervous.
If the use does skip, will the sign-in option be in the menu or settings for them to do it later?
If this page appears ‘when they first use the app’, what about people who already have it?
Has anyone implemented this yet? Could I have some feedback on how it works?
Thanks.

The Registration Screen (on first use) is not the same as the User Account. It is just for you to capture user details (or do a survey or something).

It is a good idea to differentiate between them in the App > Security > Configure Registration > Registration Screen message (e.g.

Please fill in your details is so that we may keep in touch with you

and in the Interface > Translations item for the User Account screen (Account_Login_Page_Info)
which has

You can save your highlights, notes, bookmarks and history - and synchronize them with other devices.

as it’s default message for English. Maybe add

Please note: Your first registration did not create an account. This is a separate User Account.

I’m sure someone can come up with better wording.

It would be useful to be able combine the Registration and User Account to avoid confusion, or have the Registration available in settings or as a menu item as a support contact form (or similar).

The Registration info is stored in Realtime Database and User Account info under Authentication in the Firebase Console.

1 Like

Thanks for that clarification Greg.
Until we have a strategy and/or people in place to follow up with keeping in touch with people who register, we probably won’t be implementing this.
However, User Accounts will still be useful for the end users. How do I implement this feature?

To add a little more detail to @jkurian 's post above:

  1. Setup your Firebase console
    https://software.sil.org/downloads/r/scriptureappbuilder/Scripture-App-Builder-02-Building-Apps.pdf
    (currently Section 22. User Accounts on page 77)
    If you haven’t setup Firebase Analytics yet, read section 20. Analytics and 20.1. Firebase Analytics (currently pages 71-73).

  2. Enable User Accounts
    image

  3. Check UI translation if you are using another language.
    I think any Phrase Id starting with ‘Account_’ should cover it.

I tried adding it to my app and to answer my own previous question, there is now a ‘My Account’ item at the top of the menu. (haven’t done the translations yet)


From there it takes you to the sign-in. I installed a trial app with this feature and signed in on one device, added a few notes and highlights and then installed it and signed in on another device. It didn’t work immediately but after a coffee break the notes and highlights were there. Very happy with this feature!
Just to emphasise what Greg said above, this is separate from the ‘Registration’ which you can enable under the App>Security>Require each user to register with their details when they first use the app. That does not give them an account but just lets you know who is using the app if you want to know.
This is App>User Accounts>Enable user accounts, and is not required, there is not even a pop-up window to skip, it just appears in the menu. I like it this way, I don’t like it when apps actively try to make me sign-up.
I didn’t have any luck with the iOS simulator app though.

I followed the steps on Firebase, but even if I made a mistake there I would expect it to appear in the menu but not work. Has anyone else gotten it to work with iOS? I am using the same project and made it at the same time as the Android one above.

Has anyone else gotten it to work with iOS?

Sorry, the “User Accounts” feature is not yet available in the iOS app. We normally release new features in Android and then add them to iOS some time later. Recently, we have concentrated on developing the ‘Container App’ option for iOS.

1 Like