Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

can I use this library in a React Native app? #66

Open
ManuRodgers opened this issue Feb 11, 2019 · 10 comments
Open

can I use this library in a React Native app? #66

ManuRodgers opened this issue Feb 11, 2019 · 10 comments
Assignees
Labels
enhancement New feature or request

Comments

@ManuRodgers
Copy link

Which service(blob, file, queue, table) does this issue concern?

Which version of the SDK was used?

What's the Node.js/Browser version?

What problem was encountered?

Steps to reproduce the issue?

Have you found a mitigation/solution?

@XiaoningLiu
Copy link
Member

We didn't test under React Native environment. Welcome to have a try, we will see what happens.

@XiaoningLiu XiaoningLiu self-assigned this Feb 14, 2019
@XiaoningLiu XiaoningLiu added the enhancement New feature or request label Feb 14, 2019
@bokelley
Copy link

bokelley commented Mar 2, 2019

this kind of worked for me:
npm install --save xmldom

then in my code:
`import {
DOMParser,
Document,
DOMImplementation,
XMLSerializer,
} from 'xmldom';

window.DOMParser = DOMParser;
window.XMLSerializer = XMLSerializer;
document = {};
document.implementation = new DOMImplementation();`

However, it looks like that doesn't bundle the Node implementation, so you can't get SharedKeyCredential.

Then I git cloned the library, built the Node variant and copied it into my project. Then I get stuck because it tries to use stream and I get:

You attempted attempted to import the Node standard library module "stream" from "components/azure-storage-node.js". It failed because React Native does not include the Node standard library. Read more at https://docs.expo.io/versions/latest/introduction/faq/#can-i-use-nodejs-packages-with-expo

Happy to try other things, but sort of stuck at this point.

@XiaoningLiu
Copy link
Member

XiaoningLiu commented Mar 4, 2019

Aha. This SDK currently provides 2 bundles, one for Node.js runtime, another for Browser runtime.

The Node.js runtime bundle includes SharedKeyCredential, and depends on Node.js native modules.
The browser bundle doesn't provide SharedKeyCredential, and doesn't depend on any Node.js native modules.

The bundle entries switches are defined in package.json, all mappings defined in "browser" property will switch from Node.js entries to browser entries.

There should be some configuration work about the bundling and module dependency handling to do I guess to make it work on React Native.

I'm not familiar with React Native bundling and module resolving rules, and kind of busy working on another Azurite project these days. It's appreciated if anyone can have a look at this. Or I will put it into my TODO lists and reach back later.

@willianhf
Copy link

@XiaoningLiu some updates on it?

@XiaoningLiu
Copy link
Member

Hi @willianhf Can you help create a GitHub issue in https://github.com/azure/azure-sdk-for-js and link to this? We can consider and discuss this as whole Azure JS SDK scope.

@Elijah23Johnson
Copy link

npm i react-native-azure-blob-storage --save

@emclab
Copy link

emclab commented Jul 23, 2020

XiaoningLiu, does Azure storage provide in-house module for react native? There are a few 3rd party modules for react native and I didn't find in-house RN module. For a RN app which only access/upload the Azure blob storage, what module do you recommend? The scenario is that the mobile app users are getting the temporary key from its nodejs backend server and use the temporary key to access and upload blob images on Azure.

@Elijah23Johnson
Copy link

npm i react-native-azure-blob-storage --save

@Elijah23Johnson
Copy link

This is the only working RN library that integrates with azure blob storage.

@clesgourgues
Copy link

Hi @Elijah23Johnson, is your lib able to use shared key ? Works like a charm when setting account privacy to public and using account key, but I didn't figure out how to make it work with account privacy set to private and the use of a shared key.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

7 participants